From: AJ ONeal Date: Mon, 4 May 2020 04:35:23 +0000 (-0600) Subject: make webi great again X-Git-Url: https://git.josue.xyz/?p=webi-installers%2F.git;a=commitdiff_plain;h=06f4be910e2f3828e61cace8b5ca822818501a48 make webi great again --- diff --git a/webi/webi.bash b/webi/webi.bash index 1231c77..9ca3a88 100644 --- a/webi/webi.bash +++ b/webi/webi.bash @@ -7,12 +7,12 @@ # for the people like us that are too lazy even to run curl https://webinstall.dev/PACKAGE_NAME | bash # examples: | # ```bash -# webi node +# webi node@latest # ``` #
# # ```bash -# webi golang +# webi golang@v1.14 # ``` #
# @@ -20,19 +20,73 @@ # webi rustlang # ``` -# TODO webi package@semver#channel +{ + +mkdir -p "$HOME/.local/bin" + +cat << EOF > "$HOME/.local/bin/webi" +#!/bin/bash -cat << EOF > ~/.local/bin/webi set -e set -u -my_package=\${1:-} +my_package="\${1:-}" if [ -z "\$my_package" ]; then - echo "Usage: webi " - echo "Example: webi node" + echo "Usage: webi @" + echo "Example: webi node@latest" exit 1 fi -curl -fsSL "https://webinstall.dev/\$my_package" | bash +## +## Detect acceptable package formats +## + +my_ext="" +set +e +if [ -n "\$(command -v git)" ]; then + my_ext="git,\${my_ext}" +fi +if [ -n "\$(command -v tar)" ]; then + my_ext="tar,\${my_ext}" +fi +if [ -n "\$(command -v unzip)" ]; then + my_ext="zip,\${my_ext}" +fi +if [ -n "\$(command -v pkgutil)" ]; then + my_ext="pkg,\${my_ext}" +fi +if [ -n "\$(command -v diskutil)" ]; then + # note: could also detect via hdiutil + my_ext="dmg,\${my_ext}" +fi +set -e + +## +## Detect http client +## +set +e +export WEBI_CURL="\$(command -v curl)" +export WEBI_WGET="\$(command -v wget)" +set -e + +export WEBI_BOOT="\$(mktemp -d -t "\$my_package-bootstrap.XXXXXXXX")" +export WEBI_UA="\$(uname -a)" + +if [ -n "\$WEBI_CURL" ]; then + curl -fsSL "https://webinstall.dev/\$my_package?ext=\$my_ext" -H "User-Agent: curl \$WEBI_UA" \\ + -o "\$WEBI_BOOT/\$my_package-bootstrap.sh" +else + wget -q "https://webinstall.dev/\$my_package?ext=\$my_ext" --user-agent="wget \$WEBI_UA" \\ + -O "\$WEBI_BOOT/\$my_package-bootstrap.sh" +fi + +pushd "\$WEBI_BOOT" 2>&1 > /dev/null + bash "\$my_package-bootstrap.sh" +popd 2>&1 > /dev/null + +rm -rf "\$WEBI_BOOT" EOF + chmod a+x ~/.local/bin/webi + +}