]> gitweb.fluxo.info Git - utils-git.git/commitdiff
Adds git-remote-all
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 23 Nov 2017 14:38:55 +0000 (12:38 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 23 Nov 2017 14:38:55 +0000 (12:38 -0200)
git-remote-all [new file with mode: 0755]

diff --git a/git-remote-all b/git-remote-all
new file mode 100755 (executable)
index 0000000..496cc21
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+#
+# Automate handling of the 'all' remote.
+#
+# See github - Git - Pushing code to two remotes - Stack Overflow -
+# https://stackoverflow.com/questions/14290113/git-pushing-code-to-two-remotes#14290145
+
+# Parameters
+BASENAME="`basename $0`"
+
+# Usage
+if [ -z "$1" ]; then
+  echo "usage: $BASENAME remote1 [remote2 ...]"
+fi
+
+# Process each remote
+for remote in $*; do
+  # Skip inexistent remotes
+  if ! git remote get-url $remote &> /dev/null; then
+    echo "Remote $remote does not exist, skipping..."
+    continue
+  fi
+
+  # Skip itself
+  if [ "$remote" == "all" ]; then
+    echo "Skipping remote 'all'..."
+    continue
+  fi
+
+  # Get remote push URL
+  url="`git remote get-url --push $remote`"
+
+  echo "Adding $url as a pushurl for remote 'all'..."
+
+  # Add current remote as a push URL for remote 'all'
+  if ! git remote get-url --push all &> /dev/null; then
+    git remote add all $url
+  else
+    git remote set-url --add --push all $url
+  fi
+done