Rewrote 2/3 of update/index.txt

I really just intended to change a2sDevel to a2sSource and rewrite the
lines that used it.  It became a bigger rewrite with more verbose
documentation text.
This commit is contained in:
T. Joseph Carter 2018-04-11 06:34:52 -07:00
parent e9c53fae66
commit 5e709f0e2e

View File

@ -12,34 +12,23 @@ a2sBranch="master"
a2sScriptURL="https://raw.githubusercontent.com/RasppleII/a2server/${a2sBranch}" a2sScriptURL="https://raw.githubusercontent.com/RasppleII/a2server/${a2sBranch}"
a2sTarball="https://github.com/RasppleII/a2server/archive/${a2sBranch}.tar.gz" a2sTarball="https://github.com/RasppleII/a2server/archive/${a2sBranch}.tar.gz"
origDir="$PWD" # Set a2sSource to the location of the source tree if we're running in one
a2sSource="$( dirname "${BASH_SOURCE[0]}" )/.."
# Set a2sDevel to the location of the source tree if we're running in one pushd $a2sSource >/dev/null
a2sDevel="$( dirname "${BASH_SOURCE[0]}" )/.." a2sSource="$PWD"
if [[ -f "$a2sDevel/.a2server_source" ]]; then popd >/dev/null
pushd $a2sDevel >/dev/null if [[ ! -f "$a2sSource/.a2server_source" ]]; then
a2sDevel="$PWD" a2sWebUpdate=1
popd >/dev/null a2sSource=$(mktemp -d /tmp/a2server.XXXXXXXXXXXX)
else
# We aren't in a source tree, empty the variable
a2sDevel=
fi
# Find the version in the install script
if [[ ! $a2sDevel ]]; then
newVersion=$(wget -qO- "${a2sScriptURL}/install.sh" | grep '^a2serverVersion' | cut -d '"' -f 2)
else
newVersion=$(grep '^a2serverVersion' "$a2sDevel/install.sh" | cut -d '"' -f 2)
fi fi
installedVersion=
if [[ -f /usr/local/etc/A2SERVER-version ]]; then if [[ -f /usr/local/etc/A2SERVER-version ]]; then
read installedVersion < /usr/local/etc/A2SERVER-version read installedVersion < /usr/local/etc/A2SERVER-version
# Convert old three-digit version if needed # Convert old three-digit version if needed
if [[ $installedVersion != *.*.* ]]; then if [[ $installedVersion != *.*.* ]]; then
installedVersion="${installedVersion:0:1}.${installedVersion:1:1}.${installedVersion:2}" installedVersion="${installedVersion:0:1}.${installedVersion:1:1}.${installedVersion:2}"
fi fi
else
installedVersion="1.0.0"
fi fi
autoAnswerYes= autoAnswerYes=
@ -50,12 +39,43 @@ for arg in $@; do
fi fi
done done
printf "\na2server web update\n\n"
if (( $a2sWebUpdate )); then
newVersion=$(wget -qO- "${a2sScriptURL}/install.sh" | grep '^a2serverVersion' | cut -d '"' -f 2)
cat <<-EOT
You've started the single command a2server update script. This script will
download things behind the scenes, run them without much verification, and
then it will delete what it ran whether the upgrade finished successfully or
not. For this reason, we are going to be phasing this script out in the
future.
EOT
else
newVersion=$(grep '^a2serverVersion' "$a2sSource/install.sh" | cut -d '"' -f 2)
cat <<-EOT
You've started the single command a2server update script from inside the
a2server source directory for version $newVersion. This script will only
upgrade to or reinstall that version.
EOT
fi
if [[ $installedVersion ]]; then
printf "\nRight now you have a2server %s installed\n" "$installedVersion"
else
printf "\nRight now you don't appear to have a2server installed\n"
fi
if [[ ! $autoAnswerYes ]]; then
printf "\nPress Enter to continue "
read
fi
# If running from local source tree, that's what you'll be upgrading to # If running from local source tree, that's what you'll be upgrading to
printf "\nProject history:\n" printf "\nProject history:\n"
if [[ -z "$a2sDevel" ]]; then if (( $a2sWebUpdate )); then
wget -qO- "${a2sScriptURL}/update/versionhistory.txt" wget -qO- "${a2sScriptURL}/update/versionhistory.txt"
else else
cat "$a2sDevel/update/versionhistory.txt" cat "$a2sSource/update/versionhistory.txt"
fi fi
cat <<EOT cat <<EOT
@ -65,26 +85,30 @@ available version: ${newVersion}
EOT EOT
if [[ $autoAnswerYes ]]; then if [[ ! $autoAnswerYes ]]; then
REPLY="y"
else
printf "Do you want to update (or reinstall) a2server? " printf "Do you want to update (or reinstall) a2server? "
read read
fi if [[ ${REPLY:0:1} != "y" && ${REPLY:0:1} != "Y" ]]; then
if [[ ${REPLY:0:1} == "y" || ${REPLY:0:1} == "Y" ]]; then printf "\nOkay, not updating anything now!\n\n"
if [[ -z "$a2sDevel" ]]; then exit 1
a2sInstall=$(mktemp -d /tmp/a2server.XXXXXXXXXXXX)
cd "$a2sInstall"
wget -O "a2server-${a2sBranch}.tar.gz" "$a2sTarball"
tar zxf "a2server-${a2sBranch}.tar.gz"
installScript="a2server-${a2sBranch}/install.sh"
else
installScript="${a2sDevel}/install.sh"
fi fi
source "$installScript" -i "$@"
fi fi
cd "$origDir" if (( $a2sWebUpdate )); then
if [[ $a2sInstall ]]; then a2sSource=$(mktemp -d /tmp/a2server.XXXXXXXXXXXX)
rm -rf "$a2sInstall"
# Normally tarballs unpack in a subdirectory, but we want it to unpack into
# $a2sSource directly (even though the directory has the tarball in it.)
printf "\na2server: Downloading installer to $a2sSource.\n"
wget -O "$a2sSource/a2server-$a2sBranch.tar.gz" "$a2sTarball"
tar -C $a2sSource --strip-components=1 -zxf "$a2sSource/a2server-${a2sBranch}.tar.gz"
fi
# Now we actually run the installer as if we were installing it by hand
printf "\na2server: Running the update installer now.\n"
"${a2sSource}/install.sh" -i "$@"
if (( $a2sWebUpdate )); then
printf "\na2server: Finished with installer, now deleting ${a2sSource}.\n"
rm -rf "$a2sSource"
fi fi