--- /dev/null
+#!/bin/bash -l
+
+# my projects all have README or --help with a short single line
+# description which I parse and put into the gitweb description.
+
+# If it's a repo with just a single bash script or *-function script,
+# then call it with --help, grap the 2nd line.
+# else, parse the readme, find the first non blank, not starting with [#*],
+# and use that line.
+
+set -eE -o pipefail
+trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+
+if [[ ! $1 ]]; then
+ echo "need gitroot arg"
+ exit 1
+fi
+
+gitroot=$1
+cd $gitroot
+
+shopt -s extglob
+
+_git_desc_readme() {
+ while read -r line; do
+ [[ $line ]] || continue
+ if echo "$line" | grep "^ *[#*]" &>/dev/null; then
+ continue
+ fi
+ echo "$line" > .git/description
+ break
+ done < README*
+}
+
+dirs=()
+for d in $gitroot/*; do
+ if [[ -d $d && ! -L $d ]]; then
+ for sub in $d/*; do
+ dirs+=($sub)
+ done
+ else
+ dirs+=($d)
+ fi
+done
+
+gitweb-descriptions() {
+ for d in ${dirs[@]}; do
+ d=$(readlink -f $d)
+ cd $d/..
+ e ${PWD##*/}
+ shopt -s nullglob
+ f=(!(LICENSE|COPYING|README|.git))
+ shopt -u nullglob
+ if [[ ${#f[@]} == 1 && ! -d $f ]]; then
+ if [[ ! -x $f ]]; then
+ if [[ $f == *-function ]]; then
+ ${f%-function} --help | sed -n '2p' > .git/description
+ else
+ _git_desc_readme
+ fi
+ else
+ $f --help | sed -n '2p' > .git/description
+ fi
+ else
+ _git_desc_readme
+ fi
+ done
+}
+gitweb-descriptions "$@"
EOF
-# my projects all have README or --help with a short single line
-# description which I parse and put into the gitweb description.
-_git_desc_readme() {
- while read -r line; do
- [[ $line ]] || continue
- if echo "$line" | grep "^ *[#*]" &>/dev/null; then
- continue
- fi
- echo "$line" > .git/description
- break
- done < README*
-}
-
-dirs=()
-for d in $gitroot/*; do
- if [[ -d $d && ! -L $d ]]; then
- for sub in $d/*; do
- dirs+=($sub)
- done
- else
- dirs+=($d)
- fi
-done
-gitweb_descriptions() {
- for d in ${dirs[@]}; do
- d=$(readlink -f $d)
- cd $d/..
- e ${PWD##*/}
- shopt -s nullglob
- f=(!(LICENSE|COPYING|README|.git))
- shopt -u nullglob
- if [[ ${#f[@]} == 1 && ! -d $f ]]; then
- if [[ ! -x $f ]]; then
- if [[ $f == *-function ]]; then
- ${f%-function} --help | sed -n '2p' > .git/description
- else
- _git_desc_readme
- fi
- else
- $f --help | sed -n '2p' > .git/description
- fi
- else
- _git_desc_readme
- fi
- done
-}
-
-gitweb_descriptions
+
+$script_dir/gitweb-descriptions $gitroot
$script_dir/build.rb
s lnf -T $script_dir/_site /var/www/$domain/html