diff --git a/scripts/git-srv-admin.sh b/scripts/git-srv-admin.sh index b5a62fe1..3e4c354e 100644 --- a/scripts/git-srv-admin.sh +++ b/scripts/git-srv-admin.sh @@ -94,6 +94,13 @@ create_repo() git init --bare --shared=0640 || fatal "git init failed" } +read_project_metadata() +{ + local pd="$1" + local field="$2" + git -C $pd show HEAD:make/project.conf | sed -n "/^\[$field\]/,/^\[/ p" | grep -v '\[' | cat -s | sed '${/^$/d;}' +} + update_descriptions() { [ -d $pdir ] || return 0 @@ -106,7 +113,8 @@ update_descriptions() [ -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 + read_project_metadata $proj summary > $tmp + [ -s "$tmp" ] || read_project_metadata $proj description > $tmp if [ -s "$tmp" ] && ! diff -q "$tmp" "$descr" >/dev/null 2>&1; then chown --reference=$proj $tmp chmod 640 $tmp