-#!/usr/bin/sh
+#!/usr/bin/env sh
# Mirror some Git repos
usage() {
- echo 'Usage: git-mirror [command] [arguments]
+ echo 'Usage: git-mirror [command] [arguments]
git-mirror run [path to repos] [path to log file] [html directory]
+ optional: [sleep duration]
git-mirror gen-url [path to repo] -- generate url file in repo
git-mirror help -- show this message
}
run() {
- [ -z ${3} ] && echo "not enough arguments" && exit 1
- [ -z $(which stagit) ] && echo "please install stagit" && exit 1
+ [ -z ${3} ] && echo "not enough arguments" && exit 1
+ [ -z $(which stagit) ] && echo "please install stagit" && exit 1
+ [ -z $(which minify) ] && echo "please install minify" && exit 1
- cd ${1}
+ cd ${1}
- [ -d ${3} ] || mkdir ${3}
- stagit-index ./* > ${3}/index.html
- cp /usr/share/doc/stagit/style.css ${3}
+ [ -d ${3} ] || mkdir ${3}
+ cd ${3}
- while :; do
- find ${1} -maxdepth 2 -name '*.git' | \
- while read dir; do
- newdir=${3}/$(basename ${dir} .git)
- [ -d ${newdir} ] || mkdir ${newdir}
- cd ${newdir}
- stagit ${dir}
- cp /usr/share/doc/stagit/style.css .
- git -C ${dir} fetch --tags
- echo $(date -Iseconds) ' | ' ${dir} | tee -a ${2}
- echo $(tail -n 1500 ${2}) > ${2}
- done
- sleep 600
- done
+ while :; do
+ stagit-index ${1}/*
+ find "$1" -name '*.git' -type d | \
+ while read dir; do
+ newdir=${3}/$(basename ${dir} .git)
+ [ -d ${newdir} ] || mkdir ${newdir}
+ cd ${newdir}
+ stagit ${dir}
+ cp "$1/logo.png" .
+ ln -s logo.png favicon.png
+ find . -type f \( -name '*.html' -or -name '*.xml' \) | \
+ while read i ; do
+ minify ${i} > ${i}.tmp
+ mv ${i}.tmp ${i}
+ done
+ git -C ${dir} fetch --tags
+ echo $(date -Iseconds) ' | ' ${dir} | tee -a ${2}
+ echo $(tail -n 1500 ${2}) > ${2}
+ done
+ sleep ${4:-600}
+ done
}
gen_url() {
- find ${1} -maxdepth 2 -name '*.git' | \
- while read dir; do
- git -C $dir remote get-url origin > $dir/url
- done
+ find ${1} -maxdepth 2 -name '*.git' | \
+ while read dir; do
+ $(git -C $dir remote get-url origin) > $dir/url
+ done
}
case ${1} in
- -h | --help | help)
- usage
- ;;
- run)
- shift 1
- run $@
- ;;
- gen-url)
- shift 1
- gen_url $@
- ;;
- *)
- usage
- exit 1
- ;;
+ -h | --help | help)
+ usage
+ ;;
+ run)
+ shift 1
+ run $@
+ ;;
+ gen-url)
+ shift 1
+ gen_url $@
+ ;;
+ *)
+ usage
+ exit 1
+ ;;
esac