]> git.armaanb.net Git - bin.git/blobdiff - git-mirror
xsel: new script
[bin.git] / git-mirror
index 3253b90a4b843605ff9426f2734921d54904c811..a6eaa6b8b84bcbec73d7fe1e220280da70d3f4b0 100755 (executable)
@@ -1,9 +1,10 @@
-#!/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
 
@@ -12,52 +13,59 @@ usage() {
 }
 
 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