From 045e1d911cc2ca3bf7df74deafc56110f73aeb22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20M=2E=20Bezerra?= Date: Wed, 26 May 2021 02:48:14 -0300 Subject: [PATCH] Added installation script Fixes #37 --- install.sh | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 install.sh diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..a8a2ab1 --- /dev/null +++ b/install.sh @@ -0,0 +1,78 @@ +#! /usr/bin/sh + +# Needs to be updated each version bump +VERSION="0.1.4" + +DOWNLOAD_LOCATION="/tmp/ouch" +INSTALLATION_LOCATION="/usr/bin/ouch" +REPO_URL="https://github.com/vrmiguel/ouch" + +abort() { + echo "error occurred, aborting." ; exit 1 +} + +# Panicks script if anything fails +set -e + +echo "Ouch v$VERSION." + +printf "Detected system: " +# System detection from https://stackoverflow.com/a/27776822/9982477 +# Go there to see a full table of what `uname -s` might output +case "$(uname -s)" in + Darwin) + system_suffix="-macOS" + echo "Mac OS X." + ;; + + Linux) + echo "Linux." + system_suffix="-ubuntu-18.04-glibc" + ;; + + CYGWIN*|MINGW32*|MSYS*|MINGW*) + echo "Windows." + system_suffix=".exe" + ;; + + *) + echo "ERROR." + echo "This script only works for installing on Linux, Mac OS and Windows." + echo "We found '$(uname -s)' instead." + echo "" + echo "To install 'ouch' you can opt for other installation method" + echo "listed at $REPO_URL" + echo "" + echo "If you think this is an error, please open an issue" + exit 1 + ;; +esac + +binary_url="https://github.com/vrmiguel/ouch/releases/download/${VERSION}/ouch${system_suffix}" + +echo "" + +if [ -f "$DOWNLOAD_LOCATION" ]; then + echo "Reusing downloaded binary at '$DOWNLOAD_LOCATION'." +else + echo "Downloading binary to '$DOWNLOAD_LOCATION' with curl." + echo "From $binary_url" + curl -fSL $binary_url -o $DOWNLOAD_LOCATION +fi + +echo "" + +if [ "$USER" = "root" ]; then + echo "Detected root user, trying to copy $DOWNLOAD_LOCATION to $INSTALLATION_LOCATION." + cp $DOWNLOAD_LOCATION $INSTALLATION_LOCATION || abort +else + echo "Asking for \"sudo\" permissions to finish installation." + echo "Permission is needed to copy '$DOWNLOAD_LOCATION' to '$INSTALLATION_LOCATION'" + + sudo cp $DOWNLOAD_LOCATION $INSTALLATION_LOCATION || abort +fi + +echo "" + +echo "Successfully installed!" +echo "See $REPO_URL for usage instructions."