]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
sync.sh supports pushing to remotes.
authorSimon Ruderich <simon@ruderich.org>
Wed, 18 Feb 2009 19:17:37 +0000 (20:17 +0100)
committerSimon Ruderich <simon@ruderich.org>
Wed, 18 Feb 2009 19:17:37 +0000 (20:17 +0100)
`sync.sh` or `sync.sh fetch` fetches, `sync.sh push` pushes to all remotes.

sync.sh

diff --git a/sync.sh b/sync.sh
index 31084e59fc5b3c4beba68503ad88c42dd7f3ba13..8e4c4fad477ce9606ec9f674a4b9ac1068afd41e 100755 (executable)
--- a/sync.sh
+++ b/sync.sh
@@ -4,16 +4,26 @@
 # hosts. No merging is done.
 
 
-# Fetch from each remote of each git subdirectory.
+# Select the method, fetch and push is possible.
+if [ x$1 = x -o x$1 = xfetch ]; then
+    method=fetch
+elif [ x$1 = xpush ]; then
+    method=push
+else
+    echo "Unsupported method '$1'. Only 'fetch' and 'push' is supported." >&2
+    exit 1
+fi
+
+# Fetch from/Push to each remote of each git subdirectory.
 for project in `find . -name .git -type d`; do
     if [ -d "$project" ]; then
         pwd=`pwd`
         cd "$project"
 
-        # Fetch from all remotes.
+        # Fetch from/Push to all remotes.
         for remote in `git remote`; do
-            echo "$project: fetching $remote ..."
-            git fetch "$remote"
+            echo "$project: ${method}ing $remote ..."
+            git $method "$remote"
         done
 
         cd "$pwd"