From ef5be39f9b61033468cbe64b5340be45e56b5fc7 Mon Sep 17 00:00:00 2001 From: Casey Rodarmor Date: Fri, 31 Jan 2020 04:28:40 -0800 Subject: [PATCH] Update install instructions to new domain Install script location is now https://imdl.io/install.sh type: distribution --- README.md | 4 +- bin/install | 123 ----------------------------------------------- docs/install.sh | 124 +++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 124 insertions(+), 127 deletions(-) delete mode 100755 bin/install mode change 120000 => 100755 docs/install.sh diff --git a/README.md b/README.md index 612bd47..acb2666 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,7 @@ MacOS or Windows, just replace `DEST` with the directory where you'd like to install the `imdl` binary: ```sh -curl --proto '=https' --tlsv1.2 -sSf \ - https://raw.githubusercontent.com/casey/intermodal/master/bin/install \ - | bash -s -- --to DEST +curl --proto '=https' --tlsv1.2 -sSf https://imdl.io/install.sh | bash -s -- --to DEST ``` #### Cargo diff --git a/bin/install b/bin/install deleted file mode 100755 index 196d840..0000000 --- a/bin/install +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env bash - -set -eu - -help() { - cat <<'EOF' -Install a binary release of a imdl hosted on GitHub - -Usage: - install [options] - -Options: - -h, --help Display this message - -f, --force Force overwriting an existing binary - --tag TAG Tag (version) of the crate to install (default ) - --to LOCATION Where to install the binary (default ~/.cargo/bin) -EOF -} - -git=casey/intermodal -crate=imdl -url=https://github.com/casey/intermodal -releases=$url/releases - -case `uname -s` in - Darwin) target=x86_64-apple-darwin;; - Linux) target=x86_64-unknown-linux-musl;; - *) target=x86_64-pc-windows-msvc;; -esac - -say() { - echo "install: $1" -} - -say_err() { - say "$1" >&2 -} - -err() { - if [ ! -z ${td-} ]; then - rm -rf $td - fi - - say_err "ERROR $1" - exit 1 -} - -need() { - if ! command -v $1 > /dev/null 2>&1; then - err "need $1 (command not found)" - fi -} - -force=false -while test $# -gt 0; do - case $1 in - --force | -f) - force=true - ;; - --help | -h) - help - exit 0 - ;; - --tag) - tag=$2 - shift - ;; - --to) - dest=$2 - shift - ;; - *) - ;; - esac - shift -done - -# Dependencies -need basename -need curl -need install -need mkdir -need mktemp -need tar - -# Optional dependencies -if [ -z ${tag-} ]; then - need cut - need rev -fi - -if [ -z ${dest-} ]; then - dest="$HOME/.cargo/bin" -fi - -if [ -z ${tag-} ]; then - tag=$(curl -s "$releases/latest" | cut -d'"' -f2 | rev | cut -d'/' -f1 | rev) -fi - -archive="$releases/download/$tag/$crate-$tag-$target.tar.gz" - -say_err "Repository: $url" -say_err "Crate: $crate" -say_err "Tag: $tag" -say_err "Target: $target" -say_err "Destination: $dest" -say_err "Archive: $archive" - -td=$(mktemp -d || mktemp -d -t tmp) -curl -sL $archive | tar -C $td -xz - -for f in $(ls $td); do - test -x $td/$f || continue - - if [ -e "$dest/$f" ] && [ $force = false ]; then - err "$f already exists in $dest" - else - mkdir -p $dest - install -m 755 $td/$f $dest - fi -done - -rm -rf $td diff --git a/docs/install.sh b/docs/install.sh deleted file mode 120000 index 09896c5..0000000 --- a/docs/install.sh +++ /dev/null @@ -1 +0,0 @@ -../bin/install \ No newline at end of file diff --git a/docs/install.sh b/docs/install.sh new file mode 100755 index 0000000..196d840 --- /dev/null +++ b/docs/install.sh @@ -0,0 +1,123 @@ +#!/usr/bin/env bash + +set -eu + +help() { + cat <<'EOF' +Install a binary release of a imdl hosted on GitHub + +Usage: + install [options] + +Options: + -h, --help Display this message + -f, --force Force overwriting an existing binary + --tag TAG Tag (version) of the crate to install (default ) + --to LOCATION Where to install the binary (default ~/.cargo/bin) +EOF +} + +git=casey/intermodal +crate=imdl +url=https://github.com/casey/intermodal +releases=$url/releases + +case `uname -s` in + Darwin) target=x86_64-apple-darwin;; + Linux) target=x86_64-unknown-linux-musl;; + *) target=x86_64-pc-windows-msvc;; +esac + +say() { + echo "install: $1" +} + +say_err() { + say "$1" >&2 +} + +err() { + if [ ! -z ${td-} ]; then + rm -rf $td + fi + + say_err "ERROR $1" + exit 1 +} + +need() { + if ! command -v $1 > /dev/null 2>&1; then + err "need $1 (command not found)" + fi +} + +force=false +while test $# -gt 0; do + case $1 in + --force | -f) + force=true + ;; + --help | -h) + help + exit 0 + ;; + --tag) + tag=$2 + shift + ;; + --to) + dest=$2 + shift + ;; + *) + ;; + esac + shift +done + +# Dependencies +need basename +need curl +need install +need mkdir +need mktemp +need tar + +# Optional dependencies +if [ -z ${tag-} ]; then + need cut + need rev +fi + +if [ -z ${dest-} ]; then + dest="$HOME/.cargo/bin" +fi + +if [ -z ${tag-} ]; then + tag=$(curl -s "$releases/latest" | cut -d'"' -f2 | rev | cut -d'/' -f1 | rev) +fi + +archive="$releases/download/$tag/$crate-$tag-$target.tar.gz" + +say_err "Repository: $url" +say_err "Crate: $crate" +say_err "Tag: $tag" +say_err "Target: $target" +say_err "Destination: $dest" +say_err "Archive: $archive" + +td=$(mktemp -d || mktemp -d -t tmp) +curl -sL $archive | tar -C $td -xz + +for f in $(ls $td); do + test -x $td/$f || continue + + if [ -e "$dest/$f" ] && [ $force = false ]; then + err "$f already exists in $dest" + else + mkdir -p $dest + install -m 755 $td/$f $dest + fi +done + +rm -rf $td