aboutsummaryrefslogtreecommitdiffstats
path: root/examples/tools/clone.sh
diff options
context:
space:
mode:
Diffstat (limited to 'examples/tools/clone.sh')
-rwxr-xr-xexamples/tools/clone.sh7
1 files changed, 6 insertions, 1 deletions
diff --git a/examples/tools/clone.sh b/examples/tools/clone.sh
index f08b932..2f9defc 100755
--- a/examples/tools/clone.sh
+++ b/examples/tools/clone.sh
@@ -23,6 +23,10 @@
# clone instead. Check: test-clone.sh.
set -uo pipefail
+# A missing or private repo must fail, not wait on a login: git falls back to
+# SSH_ASKPASS (a pinentry dialog on this desktop) and then the terminal.
+unset SSH_ASKPASS
+export GIT_TERMINAL_PROMPT=0
url=${1:-}
to=${2:-}
@@ -54,6 +58,7 @@ case "$url" in
;;
esac
host=${host%%:*}
+host=${host,,}
path=${path%/}
repo=${path##*/}
repo=${repo%.git}
@@ -106,7 +111,7 @@ target=$root/$folder/$name
# Never clone over an existing folder, and never under another name: offer an
# update instead. ff-only so a diverged clone is reported, not merged.
if [ -e "$target" ]; then
- if [ -n "$update" ]; then
+ if [ "$update" = 1 ]; then
out=$(git -C "$target" pull --ff-only 2>&1) && {
echo "updated $target: $(tail -1 <<< "$out")"
exit 0