76 lines
1.6 KiB
Plaintext
76 lines
1.6 KiB
Plaintext
|
GIT="git --no-pager"
|
||
|
GITPARAM="--color=always"
|
||
|
RSYNC="rsync -a --info=NAME --delete --exclude=.git --exclude=.gitignore"
|
||
|
|
||
|
export LC_ALL="C"
|
||
|
|
||
|
declare -a git_repositories
|
||
|
echo $git_repositories
|
||
|
function in_git_repositories {
|
||
|
for entry in "${git_repositories[@]}"; do
|
||
|
[[ "$entry" == "$1" ]] && echo "found";
|
||
|
done
|
||
|
}
|
||
|
|
||
|
function mod_install {
|
||
|
|
||
|
group=$1
|
||
|
shift
|
||
|
|
||
|
#echo $group
|
||
|
declare excluded
|
||
|
excluded_string=""
|
||
|
while (( "$#" )); do
|
||
|
if [ ${1:0:10} == '--exclude=' ]; then
|
||
|
excluded=(${excluded[@]} ${1#--exclude=*})
|
||
|
excluded_string="$excluded_string $1"
|
||
|
shift
|
||
|
else
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
#echo "excluded files:" ${excluded[@]}
|
||
|
function in_excluded {
|
||
|
for entry in "${excluded[@]}"; do
|
||
|
[[ "$entry" == "$1" ]] && echo "found";
|
||
|
done
|
||
|
}
|
||
|
|
||
|
declare sync_list
|
||
|
if [ "$#" == "0" ]; then
|
||
|
sync_list=("$group"/*)
|
||
|
else
|
||
|
sync_list=(${@})
|
||
|
fi
|
||
|
|
||
|
#echo "sync_list:" ${sync_list[@]}
|
||
|
for mod in ${sync_list[@]}; do
|
||
|
#echo "mod:" $mod
|
||
|
if [ -d "$mod" ] && [ -z "$(in_excluded "$(basename $mod)")" ]; then
|
||
|
echo "Process repo $mod"
|
||
|
cd "$mod"
|
||
|
GIT_REPO="$(git remote -v | grep '\(fetch\)' )"
|
||
|
#echo "GIT REPO: $GIT_REPO"
|
||
|
if [ -z "$(in_git_repositories "$GIT_REPO")" ]; then
|
||
|
echo '' >> "$LOG"
|
||
|
echo "$GIT_REPO" >> "$LOG"
|
||
|
git branch -vv | grep '^[*]' >> "$LOG"
|
||
|
git_repositories=(${git_repositories[@]} "$GIT_REPO")
|
||
|
fi
|
||
|
echo "Mod: $mod" >> "$LOG"
|
||
|
cd - >/dev/null
|
||
|
$RSYNC $excluded_string "$SRC"/"$mod" "$DST"/"$group"/
|
||
|
fi
|
||
|
done
|
||
|
}
|
||
|
|
||
|
function set_package {
|
||
|
LOG="$DST"/"$1"/mod_sources.txt
|
||
|
cp "$DST"/build.sh "$DST"/"$1"/
|
||
|
rm "$LOG" 2>/dev/null
|
||
|
git_repositories=( )
|
||
|
}
|
||
|
|
||
|
rm "$LOG" 2>/dev/null
|