Don't install cargo-update at all

staging
James Munns 5 years ago
parent f5823df70c
commit e0212e5229

@ -18,9 +18,7 @@ matrix:
before_script:
- rustup component add rustfmt
- (test -x $HOME/.cargo/bin/cargo-install-update || ./ci/install-cargo-update.sh)
- (test -x $HOME/.cargo/bin/mdbook || ./ci/install-mdbook.sh)
- cargo install-update -a
script:
- if ![[ -n "$BUILD_BOOK" ]]; then cargo check --all --benches --bins --examples --tests && cargo test --all; fi

@ -1,18 +0,0 @@
set -euxo pipefail
# Based on the Rust-Embedded WG's book CI
# https://github.com/rust-embedded/book/blob/master/ci/install.sh
main() {
# Note - this will accept any tagged release
local tag=$(git ls-remote --tags --refs --exit-code \
https://github.com/nabijaczleweli/cargo-update \
| cut -d/ -f3 \
| grep -E '^v[0-9\.]+$' \
| sort --version-sort \
| tail -n1)
$(dirname $(realpath $0))/install-tbz2.sh --git nabijaczleweli/cargo-update --tag $tag --crate cargo-install-update
}
main

@ -1,158 +0,0 @@
#!/bin/sh
# NOTE: This is based on https://japaric.github.io/trust/install.sh,
# but has been modified to not expect a target tag, and to instead
# expect bzip2 tar files (.tbz2) instead of gzip tar files (.tar.gz)
set -e
help() {
cat <<'EOF'
Install a binary release of a Rust crate hosted on GitHub
Usage:
install.sh [options]
Options:
-h, --help Display this message
--git SLUG Get the crate from "https://github/$SLUG"
-f, --force Force overwriting an existing binary
--crate NAME Name of the crate to install (default <repository name>)
--tag TAG Tag (version) of the crate to install (default <latest release>)
--target TARGET Install the release compiled for $TARGET (default <`rustc` host>)
--to LOCATION Where to install the binary (default ~/.cargo/bin)
EOF
}
say() {
echo "install.sh: $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
--crate)
crate=$2
shift
;;
--force | -f)
force=true
;;
--git)
git=$2
shift
;;
--help | -h)
help
exit 0
;;
--tag)
tag=$2
shift
;;
--target)
target=$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 $crate ] || [ -z $tag ] || [ -z $target ]; then
need cut
fi
if [ -z $tag ]; then
need rev
fi
if [ -z $target ]; then
need grep
need rustc
fi
if [ -z $git ]; then
err 'must specify a git repository using `--git`. Example: `install.sh --git japaric/cross`'
fi
url="https://github.com/$git"
say_err "GitHub repository: $url"
if [ -z $crate ]; then
crate=$(echo $git | cut -d'/' -f2)
fi
say_err "Crate: $crate"
url="$url/releases"
if [ -z $tag ]; then
tag=$(curl -s "$url/latest" | cut -d'"' -f2 | rev | cut -d'/' -f1 | rev)
say_err "Tag: latest ($tag)"
else
say_err "Tag: $tag"
fi
if [ -z $target ]; then
target=$(rustc -Vv | grep host | cut -d' ' -f2)
fi
say_err "Target: $target"
if [ -z $dest ]; then
dest="$HOME/.cargo/bin"
fi
say_err "Installing to: $dest"
url="$url/download/$tag/$crate-$tag.tbz2"
td=$(mktemp -d || mktemp -d -t tmp)
curl -sL $url | tar -C $td -xj
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
Loading…
Cancel
Save