summaryrefslogtreecommitdiffstats
path: root/git-synk
diff options
context:
space:
mode:
Diffstat (limited to 'git-synk')
-rwxr-xr-xgit-synk21
1 files changed, 21 insertions, 0 deletions
diff --git a/git-synk b/git-synk
new file mode 100755
index 0000000..c11cbd8
--- /dev/null
+++ b/git-synk
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+GIT_BASE=${GIT_BASE:-$HOME/usr/git}
+GIT_ORIGIN=${GIT_ORIGIN:-asynk}
+
+function git_cmd () {
+ path=$1
+ cmd=$2
+ cd $path && echo -e "\033[0;33m$cmd\033[0m within \033[0;31m$path\033[0m" || return 1
+ for dir in $(ls -1); do
+ [ -d $dir ] && [ -e $dir/.git/config ] || continue
+ cd $dir
+ git remote show $GIT_ORIGIN >/dev/null 2>&1 && echo -e " \033[0;36m$cmd:\033[0;35m $dir\033[0m" && git $cmd $GIT_ORIGIN master
+ cd ..
+ done
+}
+
+for gitdir in $GIT_BASE; do
+ git_cmd "$gitdir" pull
+ git_cmd "$gitdir" push
+done