repo-cloner/checker/detector-lib-git

53 lines
967 B
Bash

#!/bin/bash
function detectorSum(){
local dir=$1
[ -f $dir/FETCH_HEAD ] || touch $dir/FETCH_HEAD
# use md5sum - it is in busybox
cat $dir/FETCH_HEAD | md5sum | cut -f1 -d' '
}
function detectorSumPersist(){
detectorSum $1 > $CCLONE_CACHE/detectorSum
}
function detectorCheckFetchHead(){
# check if repo fetch_head changed, if so, return 1
local dir=$1
[ -f $CCLONE_CACHE/detectorSum ] || touch $CCLONE_CACHE/detectorSum
newSum=$(detectorSum $dir)
oldSum=$(cat $CCLONE_CACHE/detectorSum)
if [ "x$oldSum" = "x$newSum" ]
then
return 0
else
return 1
fi
}
function gitListTags(){
local dir=$1
git --git-dir="$dir" tag -l | cat
}
function gitListBranches(){
local dir=$1
git --git-dir="$dir" for-each-ref --format='%(refname:short)' refs/heads/
}
function gitPrefBranches(){
local dir=$1
gitListBranches $1 | grep master || true
gitListBranches $1 | grep upstream || true
gitListBranches $1 | sort | grep -vE 'master|upstream'
}