88 lines
2.0 KiB
Bash
Executable File
88 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
##makedesc: Install Sublime Text
|
|
|
|
set -eo pipefail
|
|
|
|
installed() { command -v "$1" >/dev/null 2>&1; }
|
|
|
|
download() {
|
|
if installed wget; then
|
|
wget -q --show-progress "$1" -O "$2"
|
|
else
|
|
curl -fsSL "$1" -o "$2"
|
|
fi
|
|
}
|
|
|
|
install() {
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
if installed brew; then
|
|
brew install --cask sublime-text
|
|
else
|
|
echo "ERROR: Install Homebrew first." >&2
|
|
exit 1
|
|
fi
|
|
return
|
|
fi
|
|
|
|
echo
|
|
echo "==============================================="
|
|
echo "Installing Sublime Text"
|
|
echo "==============================================="
|
|
echo
|
|
|
|
# https://www.sublimetext.com/download
|
|
|
|
STVER='4200'
|
|
|
|
mkdir -p "$HOME/install"
|
|
DEB_PATH="$HOME/install/sublime-text_build-${STVER}_amd64.deb"
|
|
BIN_PATH="/opt/sublime_text/sublime_text"
|
|
|
|
if [[ ! -f "$DEB_PATH" ]]; then
|
|
download "https://download.sublimetext.com/sublime-text_build-${STVER}_amd64.deb" "$DEB_PATH"
|
|
fi
|
|
|
|
sudo dpkg -i "$DEB_PATH"
|
|
sudo cp -f "$BIN_PATH" "$BIN_PATH.old"
|
|
|
|
if [[ $STVER = 4169 ]]; then
|
|
echo "00489f39: c640 0501 4885 c9" | sudo xxd -r - "$BIN_PATH"
|
|
elif [[ $STVER = 4200 ]]; then
|
|
sudo sed -i 's#\x0F\xB6\x51\x05\x83\xF2\x01#\xC6\x41\x05\x01\xB2\x00\x90#' "$BIN_PATH"
|
|
else
|
|
sudo sed -i 's#\x80\x79\x05\x00\x0F\x94\xC2#\xC6\x41\x05\x01\xB2\x00\x90#' "$BIN_PATH"
|
|
fi
|
|
|
|
echo
|
|
echo "Finish!"
|
|
$BIN_PATH --version
|
|
echo
|
|
}
|
|
|
|
remove() {
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
if installed brew; then
|
|
brew uninstall --cask sublime-text
|
|
fi
|
|
return
|
|
fi
|
|
|
|
echo
|
|
echo "==============================================="
|
|
echo "Removing Sublime Text"
|
|
echo "==============================================="
|
|
echo
|
|
|
|
sudo dpkg -r sublime-text 2>/dev/null || true
|
|
sudo rm -rf /opt/sublime_text
|
|
|
|
echo
|
|
echo "Finish!"
|
|
echo
|
|
}
|
|
|
|
case "$1" in
|
|
r|remove|d|delete|p|purge) remove ;;
|
|
*) install ;;
|
|
esac
|