diff --git a/.gitignore b/.gitignore index bac2dc0..48e8aed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules/ .env.keys +spec/tmp/* diff --git a/install.sh b/install.sh index 76d210c..8a81a8e 100755 --- a/install.sh +++ b/install.sh @@ -3,7 +3,7 @@ set -e VERSION="0.44.1" DIRECTORY="/usr/local/bin" -RELEASES_URL="https://github.com/dotenvx/dotenvx/releases" +REGISTRY_URL="https://registry.npmjs.org" INSTALL_SCRIPT_URL="https://dotenvx.sh/install.sh" # ___________________________________________________________________________________________________ @@ -227,7 +227,7 @@ filename() { } download_url() { - echo "$RELEASES_URL/download/v$VERSION/$(filename)" + echo "$REGISTRY_URL/@dotenvx/dotenvx-$(os_arch)/-/dotenvx-$(os_arch)-$VERSION.tgz" return 0 } @@ -318,12 +318,12 @@ install_dotenvx() { # 1. setup tmpdir local tmpdir=$(command mktemp -d) - # 2. download and unzip - inside pipe to support stricter installs like github actions + # TODO: handle dotenvx.exe when on a windows machine? binary is not package/dotenvx, it's package/dotenvx.exe pipe="$tmpdir/pipe" mkfifo "$pipe" curl $(progress_bar) --fail -L --proto '=https' "$(download_url)" > "$pipe" & sh -c " - tar xz --directory $(directory) < '$pipe' + tar xz --directory $(directory) --strip-components=1 -f '$pipe' 'package/dotenvx' " & wait diff --git a/spec/install_spec.sh b/spec/install_spec.sh index dca1360..efa9c00 100644 --- a/spec/install_spec.sh +++ b/spec/install_spec.sh @@ -279,7 +279,7 @@ Commands: It 'returns the combined values' When call download_url The status should equal 0 - The output should equal "https://github.com/dotenvx/dotenvx/releases/download/v0.44.1/dotenvx-0.44.1-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | tr '[:upper:]' '[:lower:]').tar.gz" + The output should equal "https://registry.npmjs.org/@dotenvx/dotenvx-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | tr '[:upper:]' '[:lower:]')/-/dotenvx-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | tr '[:upper:]' '[:lower:]')-0.44.1.tgz" End End