a-planet-alive/buildscripts/build-whynot.lib

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