-#!/bin/bash -l
+#!/bin/bash
# Copyright (C) 2016 Ian Kelling
# This program is free software: you can redistribute it and/or modify
# 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
+source /a/bin/errhandle/err
if [[ ! $1 ]]; then
- echo "need gitroot arg"
- exit 1
+ echo "need gitroot arg"
+ exit 1
fi
gitroot=$1
shopt -s nullglob
_git_desc_readme() {
- x=(README*)
- if [[ ! $x ]]; then
- echo "$1: error: no README at $PWD"
- exit 1
- fi
- while read -r line; do
- [[ $line ]] || continue
- if echo "$line" | grep "^ *[#*]" &>/dev/null; then
- continue
- fi
- echo "$line" > .git/description
- break
- done < README*
+ x=(README*)
+ if [[ ! $x ]]; then
+ echo "$1: error: no README at $PWD"
+ exit 1
+ fi
+ while read -r line; do
+ [[ $line ]] || continue
+ if echo "$line" | grep "^ *[#*]" &>/dev/null; then
+ continue
+ fi
+ echo "$line" > .git/description
+ break
+ done < README*
}
gitweb-descriptions() {
- for d in ${dirs[@]}; do
- cd $(readlink -f $d)/..
- [[ -e .git ]] || echo $d
- if [[ ${personalized[${d##*/}]} ]]; then
- echo "$pcategory" >.git/category
- fi
- f=(!(LICENSE|COPYING|README|.git))
- 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
+ for d in ${dirs[@]}; do
+ echo $d
+ cd $(readlink -f $d)/..
+ [[ -e .git ]] || echo $d
+ if [[ ${personalized[${d##*/}]} ]]; then
+ echo "$pcategory" >.git/category
+ fi
+ f=(!(LICENSE|COPYING|README|.git))
+ 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
+ _git_desc_readme
fi
- done
+ else
+ ./$f --help | sed -n '2p' > .git/description
+ fi
+ else
+ _git_desc_readme
+ fi
+ done
}
tmp=(
- bashrc
- automated-distro-installer
- buildscripts
- distro-setup
- dot-emacs
- fai-basefiles
- ian-misc-bash
- iankelling.org
- keyboard.io-layout
+ bashrc
+ automated-distro-installer
+ buildscripts
+ distro-setup
+ dot-emacs
+ fai-basefiles
+ ian-misc-bash
+ iankelling.org
+ keyboard.io-layout
)
declare -A personalized
for p in ${tmp[@]}; do personalized[$p]=true; done
dirs=()
for d in $gitroot/*; do
- if [[ ! -L $d ]]; then
- continue
- fi
- dirs+=($d)
+ if [[ ! -L $d ]]; then
+ continue
+ fi
+ dirs+=($d)
done
gitweb-descriptions "$@"