-#!/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
cd $gitroot
shopt -s extglob
+shopt -s nullglob
_git_desc_readme() {
- while read -r line; do
- [[ $line ]] || continue
- if echo "$line" | grep "^ *[#*]" &>/dev/null; then
- continue
+ 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
+ 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
fi
- echo "$line" > .git/description
- break
- done < README*
+ 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
+)
+declare -A personalized
+for p in ${tmp[@]}; do personalized[$p]=true; done
+pcategory="Personalized for my use. Useful as examples or to copy specific parts"
+
+
dirs=()
for d in $gitroot/*; do
- if [[ -d $d && ! -L $d ]]; then
- for sub in $d/*; do
- dirs+=($sub)
- done
- else
- dirs+=($d)
- fi
+ if [[ ! -L $d ]]; then
+ continue
+ fi
+ dirs+=($d)
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 "$@"