From 8ad691c6cee242e05b260aee506e11f38dbce9dd Mon Sep 17 00:00:00 2001 From: thierry Date: Fri, 21 May 2010 13:27:14 +0000 Subject: [PATCH] git daemon init script and config --- scripts/git-check.sh | 91 ++++++++++++++++++++++++++++++++++++ scripts/git-clone.sh | 37 +++++++++++++++ scripts/git-daemon.init.d | 85 +++++++++++++++++++++++++++++++++ scripts/git-daemon.sysconfig | 10 ++++ scripts/gitweb-links.sh | 15 ++++++ 5 files changed, 238 insertions(+) create mode 100755 scripts/git-check.sh create mode 100755 scripts/git-clone.sh create mode 100755 scripts/git-daemon.init.d create mode 100644 scripts/git-daemon.sysconfig create mode 100755 scripts/gitweb-links.sh diff --git a/scripts/git-check.sh b/scripts/git-check.sh new file mode 100755 index 0000000..b87b3ea --- /dev/null +++ b/scripts/git-check.sh @@ -0,0 +1,91 @@ +#!/bin/sh + +cd /git + +gitwebfiles="git-favicon.png git-logo.png gitweb.cgi gitweb.css" + +######## +gitwebpattern="" +for file in $gitwebfiles; do gitwebpattern="${gitwebpattern}|$file" ; done +gitwebpattern=$(echo "$gitwebpattern" | sed -e 's,|,,') + +### function count () { +### +### echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx counting" +### +### echo git +### ls git | wc -l +### +### echo gitweb +### ls gitweb | egrep -v "$gitwebpattern" | wc -l +### +### } +### +### function missing_in_git () { +### +### echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx missing in git" +### +### for i in $(ls gitweb | egrep -v $gitwebpattern); do +### b=$(basename $i .git) +### [ -d git/$b ] || echo $b missing in git +### done +### +### } + +function missing_in_gitweb () { + +### echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx missing in gitweb (from git)" +### +### for i in $(ls git); do +### echo -n "$i " +### if [ ! -h gitweb/${i}.git ] ; then +### echo -n "ADDING $i.git " +### (cd git; ln -s ../$i/.git ${i}.git) +### fi +### done + + echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx missing in gitweb (for web)" + for i in $gitwebfiles; do + echo -n "$i " + if [ ! -h git/${i} ] ; then + echo "LINKING.. " ; (cd git; ln -s ../${i} .) + fi + done + echo "" + +} + +function fill_descriptions () { + echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking descriptions " + for arg in "$@" ; do + # accept args like git/plcapi + i=$(basename $arg) + echo -n "$i " + grep Unnamed git/$i/.git/description && { echo -n $i "Setting.. "; echo $i > git/$i/.git/description ; } + done + echo "" +} + +function upload_archives () { + echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx checking configs for uploadarch " + for arg in "$@" ; do + # accept args like git/plcapi + i=$(basename $arg) + echo -n "$i " + if ! grep uploadarch git/$i/.git/config ; then + echo -n $i "Setting.. "; + cat >> git/$i/.git/config </dev/null + fi + [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/git + echo +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + condrestart) + if [ -f /var/lock/subsys/git ] ; then + if [ "$RETVAL" = 0 ] ; then + stop + # avoid race + sleep 3 + start + fi + fi + ;; + status) + status -p $PID_FILE git-daemon + RETVAL=$? + ;; + *) + echo $"Usage: $0 {start|stop|restart|condrestart|status}" + RETVAL=1 +esac +exit $RETVAL diff --git a/scripts/git-daemon.sysconfig b/scripts/git-daemon.sysconfig new file mode 100644 index 0000000..bfe5fae --- /dev/null +++ b/scripts/git-daemon.sysconfig @@ -0,0 +1,10 @@ +# variables looked at +GITDIR=/git/git +GITWHITELIST=/git/git/tests +PORT=9418 +VERBOSE= +DETACH=--detach +SYSLOG=--syslog +EXPORT=--export-all +# or set this one in extenso +# OPTIONS= diff --git a/scripts/gitweb-links.sh b/scripts/gitweb-links.sh new file mode 100755 index 0000000..49fb1da --- /dev/null +++ b/scripts/gitweb-links.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +GITDIR="git" +GITWEBDIR="gitweb" + +function link () { + REPO=$(echo $1 | sed 's/.*/\L&/') + rm -f ${PWD}/${GITWEBDIR}/${REPO}.git + ln -s ${PWD}/${GITDIR}/${REPO}/.git/ ${PWD}/${GITWEBDIR}/${REPO}.git +} + +for i in $* +do + link $i +done -- 2.43.0