From d114847f256c5f571c0b4c87e04b04bce3435509 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pascal=20Have=CC=81?= <hpwxf@haveneer.com>
Date: Sun, 3 Apr 2022 19:49:59 +0200
Subject: [PATCH] fix(install): protect path with whitespaces using quotes and
 stop at the first error

---
 install.sh | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/install.sh b/install.sh
index 68b8da3..1d9cff2 100755
--- a/install.sh
+++ b/install.sh
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+set -euo pipefail
 
 echo "Let's get you set up with Rustlings!"
 
@@ -100,8 +101,8 @@ function vercomp() {
 
 RustVersion=$(rustc --version | cut -d " " -f 2)
 MinRustVersion=1.39
-vercomp $RustVersion $MinRustVersion
-if [ $? -eq 2 ]
+vercomp "$RustVersion" $MinRustVersion || ec=$?
+if [ ${ec:-0} -eq 2 ]
 then
     echo "ERROR: Rust version is too old: $RustVersion - needs at least $MinRustVersion"
     echo "Please update Rust with 'rustup update'"
@@ -112,9 +113,9 @@ fi
 
 Path=${1:-rustlings/}
 echo "Cloning Rustlings at $Path..."
-git clone -q https://github.com/rust-lang/rustlings $Path
+git clone -q https://github.com/rust-lang/rustlings "$Path"
 
-cd $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"