update install.sh to check for v0 and ask to continue (#184)
* update install.sh to check for v0 and ask to continue * pseudo code * pseudo * continue * continue * continue * implement logic * tab * full path to agent db * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh * Update install.sh Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com> * Update install.sh * Update install.sh Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com> Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
This commit is contained in:
parent
fcee108863
commit
d9afc47993
78
install.sh
78
install.sh
@ -1,7 +1,8 @@
|
|||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
APP_NAME="simplex-chat"
|
APP_NAME="simplex-chat"
|
||||||
TARGET_DIR="$HOME/.local/bin"
|
BIN_DIR="$HOME/.local/bin"
|
||||||
|
BIN_PATH="$BIN_DIR/$APP_NAME"
|
||||||
PLATFORM="$(uname)"
|
PLATFORM="$(uname)"
|
||||||
|
|
||||||
if [ $PLATFORM == "Darwin" ]; then
|
if [ $PLATFORM == "Darwin" ]; then
|
||||||
@ -10,39 +11,88 @@ elif [ $PLATFORM == "Linux" ]; then
|
|||||||
PLATFORM="ubuntu-20_04-x86-64"
|
PLATFORM="ubuntu-20_04-x86-64"
|
||||||
else
|
else
|
||||||
echo "Scripted installation on your platform is not supported."
|
echo "Scripted installation on your platform is not supported."
|
||||||
echo "See compiled binaries in the latest release: https://github.com/simplex-chat/simplex-chat/releases/latest"
|
echo "See compiled binaries in the latest release: https://github.com/$APP_NAME/$APP_NAME/releases/latest"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ ! -d $TARGET_DIR ] && mkdir -p $TARGET_DIR
|
# / Prepare to upgrade from v0 to v1
|
||||||
|
|
||||||
|
# Determine path of chat binary
|
||||||
|
if [[ -n "$(which $APP_NAME)" ]]; then
|
||||||
|
binary=$(which $APP_NAME)
|
||||||
|
elif [[ -f "$BIN_PATH" ]]; then
|
||||||
|
binary=$BIN_PATH
|
||||||
|
else
|
||||||
|
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
|
||||||
|
# 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
|
||||||
|
fi
|
||||||
|
# Prepare to upgrade from v0 to v1 /
|
||||||
|
|
||||||
|
[ ! -d $BIN_DIR ] && mkdir -p $BIN_DIR
|
||||||
|
|
||||||
if [ -n "$(command -v curl)" ]; then
|
if [ -n "$(command -v curl)" ]; then
|
||||||
curl -L -o $TARGET_DIR/$APP_NAME "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
|
elif [ -n "$(command -v wget)" ]; then
|
||||||
wget -O $TARGET_DIR/$APP_NAME "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
|
else
|
||||||
echo "Cannot download simplex-chat - please install curl or wget"
|
echo "Cannot download $APP_NAME - please install curl or wget"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chmod +x $TARGET_DIR/$APP_NAME
|
chmod +x $BIN_PATH
|
||||||
|
|
||||||
echo "$APP_NAME installed sucesfully!"
|
echo "$APP_NAME installed sucesfully!"
|
||||||
|
|
||||||
if [ -z "$(command -v simplex-chat)" ]; then
|
if [ -z "$(command -v $APP_NAME)" ]; then
|
||||||
if [ -n "$($SHELL -c 'echo $ZSH_VERSION')" ]; then
|
if [ -n "$($SHELL -c 'echo $ZSH_VERSION')" ]; then
|
||||||
SHELL_FILE="$HOME/.zshrc"
|
SHELL_FILE="$HOME/.zshrc"
|
||||||
elif [ -n "$($SHELL -c 'echo $BASH_VERSION')" ]; then
|
elif [ -n "$($SHELL -c 'echo $BASH_VERSION')" ]; then
|
||||||
SHELL_FILE="$HOME/.bashrc"
|
SHELL_FILE="$HOME/.bashrc"
|
||||||
else
|
else
|
||||||
echo "Unknown shell - cannot add simplex-chat folder to PATH"
|
echo "Unknown shell - cannot add $APP_NAME folder to PATH"
|
||||||
echo "Please add $TARGET_DIR to PATH variable"
|
echo "Please add $BIN_DIR to PATH variable"
|
||||||
echo "Or you can run simplex-chat via full path: $TARGET_DIR/simplex-chat"
|
echo "Or you can run $APP_NAME via full path: $BIN_PATH"
|
||||||
fi
|
fi
|
||||||
if [ -n "$SHELL_FILE" ]; then
|
if [ -n "$SHELL_FILE" ]; then
|
||||||
echo "export PATH=\$PATH:$TARGET_DIR" >> $SHELL_FILE
|
echo "export PATH=\$PATH:$BIN_DIR" >> $SHELL_FILE
|
||||||
echo "Source your $SHELL_FILE or open a new shell and type simplex-chat to run it"
|
echo "Source your $SHELL_FILE or open a new shell and type $APP_NAME to run it"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "Type simplex-chat in your terminal to run it"
|
echo "Type $APP_NAME in your terminal to run it"
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user