diff --git a/install b/install
index fa67db44..c89390d7 100755
--- a/install
+++ b/install
@@ -2,37 +2,65 @@
set -euo pipefail
+version=""
+default_install_dir="/usr/local/bin"
+install_dir=$default_install_dir
+
print_help() {
- echo "Installs latest version of babashka. Installation directory defaults to /usr/local/bin."
+ echo "Installs latest (or specific) version of babashka. Installation directory defaults to /usr/local/bin."
echo -e
echo "Usage:"
- echo "installer.sh [
]"
+ echo "install [--dir ] [--version ]"
exit 1
}
-default_install_dir="/usr/local/bin"
-install_dir=$default_install_dir
-install_dir_opt=${1:-}
-if [ "$install_dir_opt" ]; then
- install_dir="$install_dir_opt"
+if [[ $# -eq 1 ]]; then
+ install_dir=${1:-}
fi
+while [[ $# -gt 1 ]]
+do
+ key="$1"
+ if [[ -z "${2:-}" ]]; then
+ print_help
+ fi
+
+ case $key in
+ --dir)
+ install_dir="$2"
+ shift
+ shift
+ ;;
+ --version)
+ version="$2"
+ shift
+ shift
+ ;;
+ *) # unknown option
+ print_help
+ shift
+ ;;
+ esac
+done
+
download_dir=/tmp
-latest_release="$(curl -sL https://raw.githubusercontent.com/borkdude/babashka/master/resources/BABASHKA_RELEASED_VERSION)"
+if [[ "$version" == "" ]]; then
+ version="$(curl -sL https://raw.githubusercontent.com/borkdude/babashka/master/resources/BABASHKA_RELEASED_VERSION)"
+fi
case "$(uname -s)" in
Linux*) platform=linux;;
Darwin*) platform=macos;;
esac
-download_url="https://github.com/borkdude/babashka/releases/download/v$latest_release/babashka-$latest_release-$platform-amd64.zip"
+download_url="https://github.com/borkdude/babashka/releases/download/v$version/babashka-$version-$platform-amd64.zip"
cd "$download_dir"
echo -e "Downloading $download_url."
-curl -o "babashka-$latest_release-$platform-amd64.zip" -sL "https://github.com/borkdude/babashka/releases/download/v$latest_release/babashka-$latest_release-$platform-amd64.zip"
-unzip -qqo "babashka-$latest_release-$platform-amd64.zip"
-rm "babashka-$latest_release-$platform-amd64.zip"
+curl -o "babashka-$version-$platform-amd64.zip" -sL "https://github.com/borkdude/babashka/releases/download/v$version/babashka-$version-$platform-amd64.zip"
+unzip -qqo "babashka-$version-$platform-amd64.zip"
+rm "babashka-$version-$platform-amd64.zip"
cd "$install_dir"
if [ -f babashka ]; then