]> git.phdru.name Git - git-scripts.git/blobdiff - publish2web
pull-usrlocalsrc: pull from source, push to origin
[git-scripts.git] / publish2web
index c6d2add7e6418322586ba84cad301def5dd24fcb..1847f7a8a4d66db22c3ea977dc69f8fe397dbd52 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 if [ -z "$1" ]; then
-   echo "Usage: $0 repoistory" >&2
+   echo "Usage: $0 repoistory [directories]" >&2
    exit 1
 fi
 
@@ -15,16 +15,18 @@ fi &&
 
 cd "$HOME"/tmp &&
 dest_dir="`basename \"$source_dir\"`".git &&
-git clone --mirror --config core.sharedRepository=0644 "$source_dir" "$dest_dir" &&
+git clone --bare --config core.sharedRepository=0644 "$source_dir" "$dest_dir" &&
 
 cd "$dest_dir" &&
-git gc --aggressive && git fsck --strict &&
-cp -p hooks/post-update.sample hooks/post-update && hooks/post-update &&
-cp -p "$HOME"/Internet/WWW/htdocs/git.phdru.name/phdru.name.git/git-daemon-export-ok . &&
+git gc --aggressive &&
+git repack -a -d -f --depth=20 --window=250 &&
+git fsck --strict &&
+git config receive.updateserverinfo true && git update-server-info &&
+cp -p "$HOME"/Internet/WWW/htdocs/git.phdru.name/phdru.name/phdru.name.git/git-daemon-export-ok . &&
 if [ "`cat \"$source_dir\"/.git/description`" = \
    "Unnamed repository; edit this file 'description' to name the repository." ]
 then
-   "${VISUAL:-${EDITOR:-vi}}" "$source_dir"/.git/description description
+   `git var GIT_EDITOR` "$source_dir"/.git/description description
 else
    cp -p "$source_dir"/.git/description . && chmod a+r description
 fi &&
@@ -32,9 +34,19 @@ if [ -f "$source_dir"/README.html ]; then
    cp -p "$source_dir"/README.html . && chmod a+r README.html
 fi &&
 
-cd .. &&
-mv "$dest_dir" "$HOME"/Internet/WWW/htdocs/git.phdru.name &&
+cd "$HOME"/Internet/WWW/htdocs/git.phdru.name &&
+directories="$2" &&
+if [ -n "$directories" ]; then
+   mkdir -p "$directories"
+fi &&
+
+cd "$HOME"/tmp &&
+mv "$dest_dir" "$HOME"/Internet/WWW/htdocs/git.phdru.name/"$directories" &&
 
 umask 077 &&
 cd "$source_dir" &&
-exec git remote add --mirror=push web "$HOME"/Internet/WWW/htdocs/git.phdru.name/"$dest_dir"
+if [ -n "$directories" ]; then
+   dest_dir="$directories/$dest_dir"
+fi &&
+git remote add web "$HOME"/Internet/WWW/htdocs/git.phdru.name/"$dest_dir" &&
+exec git push --set-upstream web master