From eebc24086b0d1e56f9f24702369f37e67a66bf1d Mon Sep 17 00:00:00 2001 From: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com> Date: Wed, 12 Jan 2022 23:16:05 +0400 Subject: [PATCH] fix installation script (#204) --- install.sh | 116 ++++++++++++++++++++++++++--------------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/install.sh b/install.sh index 717e3f808..1e53c00bf 100755 --- a/install.sh +++ b/install.sh @@ -6,73 +6,73 @@ BIN_PATH="$BIN_DIR/$APP_NAME" PLATFORM="$(uname)" if [ $PLATFORM == "Darwin" ]; then - PLATFORM="macos-x86-64" + PLATFORM="macos-x86-64" elif [ $PLATFORM == "Linux" ]; then - PLATFORM="ubuntu-20_04-x86-64" + PLATFORM="ubuntu-20_04-x86-64" else - echo "Scripted installation on your platform is not supported." - echo "See compiled binaries in the latest release: https://github.com/$APP_NAME/$APP_NAME/releases/latest" - exit 1 + echo "Scripted installation on your platform is not supported." + echo "See compiled binaries in the latest release: https://github.com/$APP_NAME/$APP_NAME/releases/latest" + exit 1 fi # / Prepare to upgrade from v0 to v1 # Determine path of chat binary if [[ -n "$(which $APP_NAME)" ]]; then - binary=$(which $APP_NAME) + binary=$(which $APP_NAME) elif [[ -f "$BIN_PATH" ]]; then - binary=$BIN_PATH + binary=$BIN_PATH else - binary="" + binary="" fi # If chat binary not found, check v0 initial migration and offer to abort or continue if [[ -z $binary ]]; then - agent_db="$HOME/.simplex/simplex.agent.db" - if [[ \ - -f "$agent_db" && \ - $(echo "select * from migrations;" | sqlite3 $agent_db | grep 20210101_initial) \ - ]]; then - echo "Warning: found SimpleX Chat database, the current version is not backwards compatible." - echo "If you continue, the current version will be installed as $APP_NAME with a clean database, the old database will be preserved." - while true; do - read -p "Please choose to (a)bort or (c)ontinue: " yn - case $yn in - [Aa]* ) exit 1 ;; - [Cc]* ) break ;; - * ) echo "Please answer 'a' or 'c'." - esac - done - fi + agent_db="$HOME/.simplex/simplex.agent.db" + if [[ \ + -f "$agent_db" && \ + $(echo "select * from migrations;" | sqlite3 $agent_db | grep 20210101_initial) \ + ]]; then + echo "Warning: found SimpleX Chat database, the current version is not backwards compatible." + echo "If you continue, the current version will be installed as $APP_NAME with a clean database, the old database will be preserved." + while true; do + read -p "Please choose to (a)bort or (c)ontinue: " yn < /dev/tty + case $yn in + [Aa]* ) exit 1 ;; + [Cc]* ) break ;; + * ) echo "Please answer 'a' or 'c'." + esac + done + fi # If chat binary found, check version and offer to abort or continue, on continue rename chat binary elif [[ ! $($binary -h | grep v1) ]]; then - echo "Warning: found a previous version of SimpleX Chat, the current version is not backwards compatible." - echo "If you continue, it will be renamed to $APP_NAME-v0, and the new version will be installed as $APP_NAME with a clean database." - while true; do - read -p "Please choose (a)bort or (c)ontinue: " yn - case $yn in - [Aa]* ) exit 1 ;; - [Cc]* ) - binary_v0="$binary-v0" - mv ${binary} ${binary_v0} - echo "Renamed $binary into $binary_v0" - break - ;; - * ) echo "Please answer 'a' or 'c'." - esac - done + echo "Warning: found a previous version of SimpleX Chat, the current version is not backwards compatible." + echo "If you continue, it will be renamed to $APP_NAME-v0, and the new version will be installed as $APP_NAME with a clean database." + while true; do + read -p "Please choose (a)bort or (c)ontinue: " yn < /dev/tty + case $yn in + [Aa]* ) exit 1 ;; + [Cc]* ) + binary_v0="$binary-v0" + mv ${binary} ${binary_v0} + echo "Renamed $binary into $binary_v0" + break + ;; + * ) echo "Please answer 'a' or 'c'." + esac + done fi # Prepare to upgrade from v0 to v1 / -[ ! -d $BIN_DIR ] && mkdir -p $BIN_DIR +[[ ! -d $BIN_DIR ]] && mkdir -p $BIN_DIR if [ -n "$(command -v curl)" ]; then - curl -L -o $BIN_PATH "https://github.com/$APP_NAME/$APP_NAME/releases/latest/download/$APP_NAME-$PLATFORM" + curl -L -o $BIN_PATH "https://github.com/$APP_NAME/$APP_NAME/releases/latest/download/$APP_NAME-$PLATFORM" elif [ -n "$(command -v wget)" ]; then - wget -O $BIN_PATH "https://github.com/$APP_NAME/$APP_NAME/releases/latest/download/$APP_NAME-$PLATFORM" + wget -O $BIN_PATH "https://github.com/$APP_NAME/$APP_NAME/releases/latest/download/$APP_NAME-$PLATFORM" else - echo "Cannot download $APP_NAME - please install curl or wget" - exit 1 + echo "Cannot download $APP_NAME - please install curl or wget" + exit 1 fi chmod +x $BIN_PATH @@ -80,19 +80,19 @@ chmod +x $BIN_PATH echo "$APP_NAME installed sucesfully!" if [ -z "$(command -v $APP_NAME)" ]; then - if [ -n "$($SHELL -c 'echo $ZSH_VERSION')" ]; then - SHELL_FILE="$HOME/.zshrc" - elif [ -n "$($SHELL -c 'echo $BASH_VERSION')" ]; then - SHELL_FILE="$HOME/.bashrc" - else - echo "Unknown shell - cannot add $APP_NAME folder to PATH" - echo "Please add $BIN_DIR to PATH variable" - echo "Or you can run $APP_NAME via full path: $BIN_PATH" - fi - if [ -n "$SHELL_FILE" ]; then - echo "export PATH=\$PATH:$BIN_DIR" >> $SHELL_FILE - echo "Source your $SHELL_FILE or open a new shell and type $APP_NAME to run it" - fi + if [ -n "$($SHELL -c 'echo $ZSH_VERSION')" ]; then + SHELL_FILE="$HOME/.zshrc" + elif [ -n "$($SHELL -c 'echo $BASH_VERSION')" ]; then + SHELL_FILE="$HOME/.bashrc" + else + echo "Unknown shell - cannot add $APP_NAME folder to PATH" + echo "Please add $BIN_DIR to PATH variable" + echo "Or you can run $APP_NAME via full path: $BIN_PATH" + fi + if [ -n "$SHELL_FILE" ]; then + echo "export PATH=\$PATH:$BIN_DIR" >> $SHELL_FILE + echo "Source your $SHELL_FILE or open a new shell and type $APP_NAME to run it" + fi else - echo "Type $APP_NAME in your terminal to run it" + echo "Type $APP_NAME in your terminal to run it" fi