]> git.donarmstrong.com Git - bin.git/blobdiff - update_org_files
fix string != test
[bin.git] / update_org_files
index b11a6618df265009991b0d59b789a539185c73ae..d93a40bc0af098b84b43d3ec914244da19a4660f 100755 (executable)
@@ -1,12 +1,25 @@
 #!/bin/bash
 
-cd ~;
+ORG_GREP='-e .org$ -e .org_archive$ -e .org_done$'
 
-for a in $(mr list |grep 'list:'|grep -v 'finished'|awk -F'list: ' '{print $2}' 2>/dev/null); do 
-    (cd "$a";
-    if mr --no-recurse status |grep '^ M'|grep -q '.org$'; then
-          git commit -m'update org files' $(mr --no-recurse status |grep '^ M'|grep '.org$'|sed 's/^ M//g');
-          git push;
-       fi; 
-    );
-done;
+COMMIT_MESSAGE="${1:-update org files}"
+
+if [ "x$UPDATE_ORG_REALLY_DO_IT" == "xyesdoit" ]; then
+    if git status --porcelain -z | grep -z '^ M' | grep -zq $ORG_GREP; then
+        git status --porcelain -z | grep -z '^ M' | grep -z $ORG_GREP | \
+            sed -z 's/^ M[[:space:]]*//g' | \
+            xargs -0 git commit -m"$COMMIT_MESSAGE"
+        git pull --rebase;
+        git push;
+    else
+        git pull --rebase;
+    fi;
+else
+    if [ "x$NO_SAVE_ORG_BUFFERS" == "x" ]; then
+        emacsclient -n -e '(org-save-all-org-buffers)' >/dev/null 2>&1
+    fi;
+    UPDATE_ORG_REALLY_DO_IT="yesdoit" mr -d ~/projects/org-notes -j5 run \
+                           update_org_files "$COMMIT_MESSAGE"
+    UPDATE_ORG_REALLY_DO_IT="yesdoit" mr -d ~/org-mode -j5 run \
+                           update_org_files "$COMMIT_MESSAGE";
+fi;