rsync-backup.in (run): Option to preserve standard input.
[rsync-backup] / rsync-backup.in
index a9145d6..e9bb3be 100644 (file)
@@ -83,6 +83,14 @@ copy () {
 }
 
 run () {
+  stdinp=nil
+  while :; do
+    case $1 in
+      -stdin) stdinp=t; shift ;;
+      --) shift; break ;;
+      *) break ;;
+    esac
+  done
   tag=$1 cmd=$2; shift 2
   ## Run CMD, logging its output in a pleasing manner.
 
@@ -95,12 +103,13 @@ run () {
     nil)
       log "BEGIN $tag"
       rc=$(
+       case $stdinp in nil) exec </dev/null ;; esac
        { { { ( set +e
                "$cmd" "$@" 3>&- 4>&- 5>&- 9>&-
                echo $? >&5; ) |
              copy "|" >&4; } 2>&1 |
            copy "*" >&4; } 4>&1 |
-         cat >&9; } 5>&1 </dev/null
+         cat >&9; } 5>&1
       )
       case $rc in
        0) log "END $tag" ;;