#!/usr/bin/sh -e case ${1} in -h | --help) echo "Usage: git-mirror [path to repos] [path to log file] [html directory]" echo "relative paths are not supported." exit 1 ;; esac [ -z ${3} ] && echo "not enough arguments" && exit 1 [ -z $(which stagit) ] && echo "please install stagit" && exit 1 cd ${1} [ -d ${3} ] || mkdir ${3} stagit-index ./* > ${3}/index.html cp /usr/share/doc/stagit/style.css ${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 fetch --tags echo $(date -Iseconds) ' | ' ${dir} | tee -a ${2} echo $(tail -n 1500 ${2}) > ${2} done sleep 600 done