shift $((OPTIND-1)) # Get rid of our options
+# We want to check if a cache of the git clone of this repo already exists.
+git_cache="${dl_dir}/git"
+
# Caller needs to single-quote its arguments to prevent them from
# being expanded a second time (in case there are spaces in them)
_git() {
- eval ${GIT} "${@}"
+ eval GIT_DIR="${git_cache}/.git" ${GIT} "${@}"
}
-# We want to check if a cache of the git clone of this repo already exists.
-git_cache="${dl_dir}/git"
-
# If the cache directory doesn't exists, init a new repo, which will be
# fetch'ed later.
if [ ! -d "${git_cache}" ]; then
+ # We can still go through the wrapper, because 'init' does not use
+ # the path pointed to by GIT_DIR, but really uses the directory
+ # passed as argument.
_git init "'${git_cache}'"
fi
pushd "${git_cache}" >/dev/null
# Ensure the repo has an origin (in case a previous run was killed).
-if ! git remote |grep -q -E '^origin$'; then
+if ! _git remote |grep -q -E '^origin$'; then
_git remote add origin "'${uri}'"
fi