diff --git a/install.sh b/install.sh index 532728e3..c32f5126 100755 --- a/install.sh +++ b/install.sh @@ -102,12 +102,30 @@ Path=${1:-rustlings/} echo "Cloning Rustlings at $Path..." git clone -q https://github.com/rust-lang/rustlings $Path +cd $Path + Version=$(curl -s https://api.github.com/repos/rust-lang/rustlings/releases/latest | ${PY} -c "import json,sys;obj=json.load(sys.stdin);print(obj['tag_name']);") CargoBin="${CARGO_HOME:-$HOME/.cargo}/bin" +if [[ -z ${Version} ]] +then + echo "The latest tag version could not be fetched remotely." + echo "Using the local git repository..." + Version=$(ls -tr .git/refs/tags/ | tail -1) + if [[ -z ${Version} ]] + then + echo "No valid tag version found" + echo "Rustlings will be installed using the master branch" + Version="master" + else + Version="tags/${Version}" + fi +else + Version="tags/${Version}" +fi + echo "Checking out version $Version..." -cd $Path -git checkout -q tags/$Version +git checkout -q ${Version} echo "Installing the 'rustlings' executable..." cargo install --force --path .