summaryrefslogtreecommitdiffhomepage
path: root/build.subr
diff options
context:
space:
mode:
Diffstat (limited to 'build.subr')
-rw-r--r--build.subr13
1 files changed, 10 insertions, 3 deletions
diff --git a/build.subr b/build.subr
index 32b4f4c4..168e9721 100644
--- a/build.subr
+++ b/build.subr
@@ -34,11 +34,18 @@ fetch() {
};
fetch_git() {
- _fg_subdir="${1}"; _fg_url="${2}"; _fg_git_args_extra="${3}";
+ _fg_subdir="${1}"; _fg_url="${2}"; _fg_branch="${3}";
if [ -e "${DLCACHEDIR}/${_fg_subdir}" ]; then
- (cd ${DLCACHEDIR}/${_fg_subdir} && git pull origin main);
+ cd ${DLCACHEDIR}/${_fg_subdir} &&\
+ git pull origin ${_fg_branch:-main} && cd ${OLDPWD};
else
- git clone ${_fg_git_args_extra} ${_fg_url} ${DLCACHEDIR}/${_fg_subdir};
+ git clone ${_fg_url} ${DLCACHEDIR}/${_fg_subdir};
+ if [ -n "${_fg_branch}" -a \
+ \( -z "${_fg_branch#main}" \) -a \
+ \( -z "${_fg_branch#master}" \) ]; then
+ cd ${DLCACHEDIR}/${_fg_subdir} &&\
+ git checkout -b ${_fg_branch} && cd ${OLDPWD};
+ fi;
fi;
rm_if_exists ${_fg_subdir};
echo cp -pr ${DLCACHEDIR}/${_fg_subdir} .;