| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #! /bin/bash
- if [ $# != 2 ]; then echo "$# != 2"; exit 1; fi
- if [ ! -f $1 ]; then echo "$1 not exist"; exit 2; fi
- if [ "$(uname)" = "Darwin" ]; then
- SED=gsed
- else
- SED=sed
- fi
- BLDV=$1
- CMDV=$2
- if [ "${CMDV}" = "list" ]; then
- grep "^PKG_UPSTREAM_[-/_a-zA-Z0-9]*" ${BLDV} \
- | ${SED} 's/^PKG_UPSTREAM_\([^ ]*\) = \(.*\)$/[\1] \2/g'
- fi
- REPO_LIST=$( \
- grep "^PKG_UPSTREAM_[-/_a-zA-Z0-9]*" ${BLDV} \
- | ${SED} 's/^PKG_UPSTREAM_\([^ ]*\) = \(.*\)$/[\1] \2/g' \
- | cut -d' ' -f1 \
- | ${SED} 's/\[//g;s/\]//g;' \
- )
- if [ "${CMDV}" = "update" ]; then
- echo "Select repository to be updated, type 1 to update all repositories"|grep --color ".*"
- echo ""
- select O in "ALL REPOS" ${REPO_LIST}; do
- echo ""
- echo "Updating $O ..."|grep --color ".*"
- echo ""
- break
- done
- if [ "${O}" = "ALL REPOS" ]; then
- O=""
- fi
- REPOS=$(grep -o "^PKG_UPSTREAM_[-/_a-zA-Z0-9]*" ${BLDV}|grep "${O}"|sort -u|${SED} 's:PKG_UPSTREAM_::')
- for R in ${REPOS}; do
- UPSTREAM=$(grep -m 1 "^PKG_UPSTREAM_${R}" ${BLDV}|awk '{ print $NF }')
- SOURCE=$(grep -m 1 "^PKG_SOURCE_${R}" ${BLDV}|awk '{ print $NF }')
- BRANCH=$(grep -m 1 "^PKG_BRANCH_${R}" ${BLDV}|awk '{ print $NF }')
- [ "${BRANCH}" = "" ] && BRANCH="master"
- echo "[ ${SOURCE} ] <= : ${UPSTREAM} :: ${BRANCH}"
- set -x
- cd ${PACKAGE_DIR}
- rm -rf ${SOURCE}
- # --single-branch might doesn't exist for git <= 1.7.9.5
- #
- # git clone -q --bare -b ${BRANCH} --single-branch ${UPSTREAM} ${SOURCE}
- git clone -q --bare -b ${BRANCH} ${UPSTREAM} ${SOURCE}
- rm -rf ${SOURCE}/hooks/
- mkdir -p ${SOURCE}/hooks/
- touch ${SOURCE}/hooks/.gitkeep
- touch ${SOURCE}/refs/{heads,tags}/.gitkeep
- rm -rf ${TOP_DIR}.pkgs/${SOURCE/.git}
- cd ${OLDPWD}
- set +x
- done
- fi
|