diff options
author | romkatv <roman.perepelitsa@gmail.com> | 2020-05-11 20:27:10 +0300 |
---|---|---|
committer | romkatv <roman.perepelitsa@gmail.com> | 2020-05-11 20:27:10 +0300 |
commit | bda74564e3b1b9bbaa77f840215f7d99d0b77ed8 (patch) | |
tree | f660501cdf5ce04444e89739f4f3cbed31509f40 /install | |
parent | 1db7094966bc86658166709db26b7750d8fc2821 (diff) |
Squashed 'gitstatus/' changes from d3bc3e34..901c366b
901c366b survive `cd` being a function that fails instead of doing its job; see #123
git-subtree-dir: gitstatus
git-subtree-split: 901c366b8ecb736e579784b132442ee51bcb0840
Diffstat (limited to 'install')
-rwxr-xr-x | install | 43 |
1 files changed, 21 insertions, 22 deletions
@@ -205,31 +205,30 @@ END [ -d "$cache_dir" ] || mkdir -p -- "$cache_dir" || return local url="https://github.com/romkatv/gitstatus/releases/download/$version/$file.tar.gz" - local archive="$cache_dir"/"$file".tmp.$$.tar.gz - if command -v curl >/dev/null 2>&1; then - # `cd` is a workaround for Cygwin. It cannot handle -o with slashes. - if ! err="$(cd ${ZSH_VERSION:+-q} -- "$cache_dir" 2>&1 && - command curl -fsSLo "${archive##*/}" -- "$url" 2>&1)"; then - >&2 printf "%s\n" "$err" - >&2 echo "[gitstatus] error: failed to download gitstatusd: $url" - return 1 - fi - elif command -v wget >/dev/null 2>&1; then - if ! err="$(command wget -O "$archive" -- "$url" 2>&1)"; then - >&2 printf "%s\n" "$err" - >&2 echo "[gitstatus] error: failed to download gitstatusd: $url" - return 1 - fi - else - >&2 echo "[gitstatus] error: please install curl or wget" - return 1 - fi ( if [ -n "${ZSH_VERSION:-}" ]; then - builtin cd -q -- "$cache_dir" || return + builtin cd -q -- "$cache_dir" || exit + else + cd -- "$cache_dir" || exit + fi + + local archive="$file".tmp.$$.tar.gz + local err + + if command -v curl >/dev/null 2>&1; then + err="$(command curl -fsSLo "$archive" -- "$url" 2>&1)" + elif command -v wget >/dev/null 2>&1; then + err="$(command wget -O "$archive" -- "$url" 2>&1)" else - cd -- "$cache_dir" || return + >&2 echo "[gitstatus] error: please install curl or wget" + exit 1 + fi + + if [ $? != 0 ]; then + >&2 printf "%s\n" "$err" + >&2 echo "[gitstatus] error: failed to download gitstatusd: $url" + exit 1 fi local old= @@ -240,7 +239,7 @@ END [ -e "$old" ] || break i="$((i+1))" done - command mv -f -- "$daemon" "$old" || return + command mv -f -- "$daemon" "$old" || exit fi command tar -xzf "$archive" |