aboutsummaryrefslogtreecommitdiff
path: root/rsup
diff options
context:
space:
mode:
Diffstat (limited to 'rsup')
-rwxr-xr-xrsup36
1 files changed, 36 insertions, 0 deletions
diff --git a/rsup b/rsup
new file mode 100755
index 0000000..7ce9687
--- /dev/null
+++ b/rsup
@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+# Recursively commit submodule changes
+#
+# Usage:
+#
+# From a submodule folder:
+#
+# sup <message> # go upwards commit, until there's no parent repository
+
+# Parameters
+DIRNAME="`dirname $0`"
+BASENAME="`basename $0`"
+MESSAGE="$*"
+GIT="hit"
+
+# Check if it is a git repository
+if [ ! -d ".git" ]; then
+ echo "$BASENAME: not a git repository"
+ exit 1
+fi
+
+# Default message
+if [ -z "$MESSAGE" ]; then
+ BASE="$(basename `pwd`)"
+ MESSAGE="Updates $BASE"
+fi
+
+# Commit
+commit $MESSAGE
+
+# Got up
+while -d "../.git"; do
+ sup
+ cd ..
+done