#!/usr/bin/env sh set -e install() { echo "install into $os" echo downloading: $url remove $bin-$suffix $download $url extract $bin-$suffix remove $bin-$suffix move $bin /usr/local/bin/$bin echo installed to /usr/local/bin/$bin } remove() { if [ -w $(dirname $1) ]; then rm -f $1 else sudo rm -f $1 fi } move() { if [ -w $(dirname $2) ]; then ln -f $1 $2 else sudo ln -f $1 $2 fi remove $1 } extract() { if [ ! -w $(dirname $1) ]; then extractor="sudo $extractor" fi $extractor $1 } select_url() { if [ -z "$bin" ]; then bin=$(basename $repo) fi if [ -z "$ver" ]; then url=`$get https://api.github.com/repos/$repo/releases/latest | grep $bin-$os | grep /releases/download/ | cut -d '"' -f 4` else url="https://github.com/$repo/releases/download/$ver/$bin-$suffix" fi } select_downloader() { if which curl > /dev/null; then get="curl -L" download="curl -JOL" else get="wget -O-" download="wget" fi # if cwd is not writable prepend sudo if [ ! -w `pwd` ]; then download="sudo $download" fi } select_os() { case $(uname) in Darwin) os="mac" suffix="$os.zip" extractor=unzip ;; Linux) os="linux" suffix="$os.tar.gz" extractor="tar -xzf" ;; *) echo "os not supported..." exit 1 ;; esac } select_downloader select_os select_url install