#!/bin/bash # A wrapper for system git that prevents commands such as `clone` or `fetch` to be # executed in testing. It logs commands to “~/.history” so afterwards it can be # asserted that they ran.
command=“$1”
|| echo git “$@” >> “$HOME”/.history
case “$command” in
"clone" | "fetch" | "pull" | "push" )
# don't actually execute these commands
exit
;;
* )
# note: `submodule add` also initiates a clone, but we work around it
if [ "$command $2 $3" = "remote add -f" ]; then
subcommand=$2
shift 3
exec "$HUB_SYSTEM_GIT" $command $subcommand "$@"
else
exec "$HUB_SYSTEM_GIT" "$@"
fi
;;
esac