From f74fdbba1750c80cbf142406f2a4eff49dfce8fa Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Wed, 12 Apr 2017 19:14:05 +0000 Subject: [PATCH] git-srv-admin.sh: Add command update-descriptions Signed-off-by: Jan Lindemann --- scripts/git-srv-admin.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/scripts/git-srv-admin.sh b/scripts/git-srv-admin.sh index 30ed3dae..b5a62fe1 100644 --- a/scripts/git-srv-admin.sh +++ b/scripts/git-srv-admin.sh @@ -94,6 +94,33 @@ create_repo() git init --bare --shared=0640 || fatal "git init failed" } +update_descriptions() +{ + [ -d $pdir ] || return 0 + cd $pdir || return 1 + local projs="$*" + [ "$projs" = all ] && projs=`list_repos` + local proj + for proj in $projs; do + umask 0022 + [ -d "$proj" ] || fatal "Failed to find project $pdir/$proj" + local tmp=`mktemp /tmp/$myname-XXXXXXX` + local descr=$proj/description + git -C $proj show HEAD:make/project.conf | sed -n '/^\[description\]/,/^\[/ p' | grep -v '\[' | cat -s | sed '${/^$/d;}' > $tmp + if [ -s "$tmp" ] && ! diff -q "$tmp" "$descr" >/dev/null 2>&1; then + chown --reference=$proj $tmp + chmod 640 $tmp + echo "====== Changing description of $proj" + echo '-- old --' + cat $descr + echo '-- new --' + cat $tmp + mv $tmp $descr + fi + rm -f $tmp + done +} + list_repos() { [ -d $pdir ] || return 0 @@ -188,6 +215,9 @@ create-personal-project|create-repo) check_user_is_self create_repo "$@" ;; +update-descriptions|update-descr) + update_descriptions "$@" + ;; list-personal-projects|list-repos) list_repos "$@" ;;