| 001 | #!/bin/bash |
|---|
| 002 | #com.cocolog-nifty.quicktimer.icefloe |
|---|
| 003 | #ユーザード ~/Library/Application Support にインストールする |
|---|
| 004 | #7zバージョン2501版 |
|---|
| 005 | |
|---|
| 006 | ###ダウンロードURL |
|---|
| 007 | STR_URL="https://github.com/ip7z/7zip/releases/download/26.01/7z2601-mac.tar.xz" |
|---|
| 008 | STR_URL="https://www.7-zip.org/a/7z2601-mac.tar.xz" |
|---|
| 009 | |
|---|
| 010 | ######################################## |
|---|
| 011 | ###管理者インストールしているか?チェック |
|---|
| 012 | USER_WHOAMI=$(/usr/bin/whoami) |
|---|
| 013 | /bin/echo "実行ユーザーは:${USER_WHOAMI}" |
|---|
| 014 | ###実行しているユーザー名 |
|---|
| 015 | CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }') |
|---|
| 016 | /bin/echo "コンソールユーザー:${CONSOLE_USER}" |
|---|
| 017 | ###ログイン名ユーザー名※Visual Studio Codeの出力パネルではrootになる設定がある |
|---|
| 018 | LOGIN_NAME=$(/usr/bin/logname) |
|---|
| 019 | /bin/echo "ログイン名:${LOGIN_NAME}" |
|---|
| 020 | ###UID |
|---|
| 021 | USER_NAME=$(/usr/bin/id -un) |
|---|
| 022 | /bin/echo "ユーザー名:${USER_NAME}" |
|---|
| 023 | ###SUDOUSER |
|---|
| 024 | /bin/echo "SUDO_USER: ${SUDO_USER}" |
|---|
| 025 | ######################################## |
|---|
| 026 | ###ダウンロード起動時に削除する項目 |
|---|
| 027 | USER_TEMP_DIR=$(/usr/bin/mktemp -d) |
|---|
| 028 | /bin/echo "起動時に削除されるディレクトリ:" "${USER_TEMP_DIR}" |
|---|
| 029 | ############################################################ |
|---|
| 030 | ############################################################ |
|---|
| 031 | ###BIN |
|---|
| 032 | /bin/mkdir -p "/Users/${CONSOLE_USER}/Library/Application Support/bin" |
|---|
| 033 | for ((numTimes = 1; numTimes <= 3; numTimes++)); do |
|---|
| 034 | sleep 1 |
|---|
| 035 | /bin/mkdir -p "/Users/${CONSOLE_USER}/Library/Application Support/bin/7zip" |
|---|
| 036 | /usr/bin/touch "/Users/${CONSOLE_USER}/Library/Application Support/bin/7zip" |
|---|
| 037 | /usr/sbin/chown "${CONSOLE_USER}" "/Users/${CONSOLE_USER}/Library/Application Support/bin/7zip" |
|---|
| 038 | /bin/chmod 700 "/Users/${CONSOLE_USER}/Library/Application Support/bin" |
|---|
| 039 | done |
|---|
| 040 | |
|---|
| 041 | ###ファイル名を取得 |
|---|
| 042 | DL_FILE_NAME=$(/usr/bin/curl -s -L -I -o /dev/null -w '%{url_effective}' "${STR_URL}" | /usr/bin/rev | /usr/bin/cut -d'/' -f1 | /usr/bin/rev) |
|---|
| 043 | /bin/echo "DL_FILE_NAME:${DL_FILE_NAME}" |
|---|
| 044 | ###ダウンロード |
|---|
| 045 | if ! /usr/bin/curl -L -o "${USER_TEMP_DIR}/${DL_FILE_NAME}" "${STR_URL}" --connect-timeout 20; then |
|---|
| 046 | /bin/echo "ファイルのダウンロードに失敗しました HTTP1.1で再トライします" |
|---|
| 047 | if ! /usr/bin/curl -L -o "${USER_TEMP_DIR}/${DL_FILE_NAME}" "${STR_URL}" --http1.1 --connect-timeout 20; then |
|---|
| 048 | /bin/echo "ファイルのダウンロードに失敗しました" |
|---|
| 049 | exit 1 |
|---|
| 050 | fi |
|---|
| 051 | fi |
|---|
| 052 | ##全ユーザー実行可能にしておく |
|---|
| 053 | /bin/chmod 755 "${USER_TEMP_DIR}/${DL_FILE_NAME}" |
|---|
| 054 | /bin/echo "ダウンロードOK" |
|---|
| 055 | /bin/mkdir -p "${USER_TEMP_DIR}/7zip/" |
|---|
| 056 | ############################################################ |
|---|
| 057 | ######### インストール |
|---|
| 058 | /bin/echo "インストール開始:" "${CONSOLE_USER}" |
|---|
| 059 | ####解凍 |
|---|
| 060 | ## /usr/bin/bsdtar -xzf "${USER_TEMP_DIR}/${DL_FILE_NAME}" -C "${USER_TEMP_DIR}/7zip" --strip-components=1 |
|---|
| 061 | /usr/bin/bsdtar -xzf "${USER_TEMP_DIR}/${DL_FILE_NAME}" -C "${USER_TEMP_DIR}/7zip" |
|---|
| 062 | sleep 2 |
|---|
| 063 | ###旧バージョンをゴミ箱に |
|---|
| 064 | USER_TRASH_DIR=$(/usr/bin/mktemp -d "${HOME}/.Trash/7ZZ.XXXXXXXX") |
|---|
| 065 | /bin/mv "/Users/${CONSOLE_USER}/Library/Application Support/bin/7zip" "${USER_TRASH_DIR}" |
|---|
| 066 | ###旧バージョンをゴミ箱に |
|---|
| 067 | USER_TRASH_DIR=$(/usr/bin/mktemp -d "${HOME}/.Trash/7ZZ.XXXXXXXX") |
|---|
| 068 | /bin/mv "/Users/${CONSOLE_USER}/Library/Application Support/7zip" "${USER_TRASH_DIR}" |
|---|
| 069 | ####移動 |
|---|
| 070 | /usr/bin/ditto "${USER_TEMP_DIR}/7zip" "/Users/${CONSOLE_USER}/Library/Application Support/bin/7zip" |
|---|
| 071 | |
|---|
| 072 | ###拡張属性Extended Attributes (EA)削除 |
|---|
| 073 | /usr/bin/xattr -cr "/Users/${CONSOLE_USER}/Library/Application Support/bin/7zip" |
|---|
| 074 | ####終了 |
|---|
| 075 | /bin/echo "インストール終了:" "${CONSOLE_USER}" |
|---|
| 076 | ###保存先を開く |
|---|
| 077 | /usr/bin/open "/Users/${CONSOLE_USER}/Library/Application Support/bin/7zip" |
|---|
| 078 | exit 0 |
|---|