diff --git a/install b/install
index c89390d7..4d7ad6db 100755
--- a/install
+++ b/install
@@ -5,12 +5,19 @@ set -euo pipefail
version=""
default_install_dir="/usr/local/bin"
install_dir=$default_install_dir
+default_download_dir="/tmp"
+download_dir=$default_download_dir
print_help() {
echo "Installs latest (or specific) version of babashka. Installation directory defaults to /usr/local/bin."
echo -e
echo "Usage:"
- echo "install [--dir
] [--version ]"
+ echo "install [--dir ] [--download-dir ] [--version ]"
+ echo -e
+ echo "Defaults:"
+ echo " * Installation directory: ${default_install_dir}"
+ echo " * Download directory: ${default_download_dir}"
+ echo " * Version: "
exit 1
}
@@ -31,6 +38,11 @@ do
shift
shift
;;
+ --download-dir)
+ download_dir="$2"
+ shift
+ shift
+ ;;
--version)
version="$2"
shift
@@ -43,8 +55,6 @@ do
esac
done
-download_dir=/tmp
-
if [[ "$version" == "" ]]; then
version="$(curl -sL https://raw.githubusercontent.com/borkdude/babashka/master/resources/BABASHKA_RELEASED_VERSION)"
fi
@@ -56,17 +66,23 @@ esac
download_url="https://github.com/borkdude/babashka/releases/download/v$version/babashka-$version-$platform-amd64.zip"
+mkdir -p "$download_dir"
cd "$download_dir"
-echo -e "Downloading $download_url."
+echo -e "Downloading $download_url to $download_dir"
+rm -rf "babashka-$version-$platform-amd64.zip"
+rm -rf "bb"
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
- echo "Moving $install_dir/bb to $install_dir/bb.old"
+if [ "$download_dir" != "$install_dir" ]
+then
+ mkdir -p "$install_dir"
+ cd "$install_dir"
+ if [ -f bb ]; then
+ echo "Moving $install_dir/bb to $install_dir/bb.old"
+ fi
+ mv -f "$download_dir/bb" "$PWD/bb"
fi
-mv -f "$download_dir/bb" "$PWD/bb"
-
echo "Successfully installed bb in $install_dir."