a2server/setup/index.txt
T. Joseph Carter e9c53fae66 Make index.txt use a2sSource convention
Redefining a2sSource to be the top source directory throughout, and I
just wrote this index.txt that doesn't follow that convention.  Fixed
that and removed some unnecessary directory switching in the shell
script since the closest we need to get to being in a particular
directory is when we extract the tarball, and tar takes arguments for
that.

Also made the temp dir we create actually be a2sSource for simplicity.
2018-04-11 04:32:01 -07:00

94 lines
3.3 KiB
Bash
Executable File

#! /bin/bash
# vim: set tabstop=4 shiftwidth=4 noexpandtab filetype=sh:
# setup/index.txt - upgrade path from Ivan's a2server tree
#
# Ivan's a2server installed with a single copy-paste of a command line that
# downloaded a script and ran it sight-unseen. People are going to continue
# to run that command (they shouldn't, but they will), and we can support
# them doing it for now.
a2sBranch="master"
a2sScriptURL="https://raw.githubusercontent.com/RasppleII/a2server/${a2sBranch}"
a2sTarball="https://github.com/RasppleII/a2server/archive/${a2sBranch}.tar.gz"
# Set a2sSource to the location of the source tree if we're running in one
a2sSource="$( dirname "${BASH_SOURCE[0]}" )/.."
if [[ -f "$a2sSource/.a2server_source" ]]; then
pushd $a2sSource >/dev/null
a2sSource="$PWD"
popd >/dev/null
cat <<-EOT
This script exists solely for backward-compatibility with IvanX's a2server
website and aliases installed by older versions. You appear to have an
a2server source directory here:
$a2sSource
Please run ./install.sh in that directory. Thanks!
EOT
exit 1
fi
# Find the version in the install script
newVersion=$(wget -qO- "${a2sScriptURL}/install.sh" | grep '^a2serverVersion' | cut -d '"' -f 2)
# It almost never is, but this script could be run with command line arguments,
# of which -y we can use, so we should check for it. We'll pass them all to
# the install script later
autoAnswerYes=
for arg in $@; do
if [[ $arg == "-y" ]]; then
autoAnswerYes=1
break
fi
done
cat <<EOT
Hello, you've reached the single wget command version of the a2server install
script. This script is being phased out for a number of reasons. The most
important is that it is not repeatable. This script will download things
behind the scenes, run them without much verification, and then delete what it
ran, no matter if the installation finished successfully or not. The next
time you run the same command, you may get a different (hopefully better)
version.
Right now, a2server ${newVersion} is available.
If you are seeing this text, iKarith (Joseph Carter) hasn't bothered to write
publicly-facing end-user documentation for downloading and installing a2server
a more preferred way. He's filed an issue about this, please do follow the
instructions there:
https://github.com/RasppleII/a2server/issues/60
For now, this script does what the old installer used to.
EOT
if [[ ! $autoAnswerYes ]]; then
printf "Do you want to install a2server with this script? "
read
if [[ ${REPLY:0:1} != "y" && ${REPLY:0:1} != "Y" ]]; then
printf "\nOkay, not installing anything now!\n\n"
exit 1
fi
fi
a2sSource=$(mktemp -d /tmp/a2server.XXXXXXXXXXXX)
# 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"
# Now we actually run the installer as if we were installing it by hand
printf "\na2server: Running the installer now.\n"
"${a2sSource}/install.sh" "$@"
# Clean up and delete the installer we downloaded
printf "\na2server: Finished with installer, now deleting ${a2sSource}.\n"
rm -rf "$a2sSource"