chiark
/
gitweb
/
~mdw
/
rsync-backup
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1da0cd4
)
rsync-backup.in: Handle backslashes correctly in command output.
author
Mark Wooding
<mdw@distorted.org.uk>
Fri, 14 Jun 2013 23:07:56 +0000
(
00:07
+0100)
committer
Mark Wooding
<mdw@distorted.org.uk>
Fri, 14 Jun 2013 23:07:56 +0000
(
00:07
+0100)
rsync-backup.in
patch
|
blob
|
blame
|
history
diff --git
a/rsync-backup.in
b/rsync-backup.in
index ec876ed9ce037a9b876eac6baa1a0c1e2d658b52..0ee11508955b44e62da6639b9482a182ba906d4e 100644
(file)
--- a/
rsync-backup.in
+++ b/
rsync-backup.in
@@
-78,6
+78,15
@@
maybe () {
esac
}
esac
}
+copy () {
+ prefix=$1
+ ## Copy lines from stdin to stdout, adding PREFIX.
+
+ while IFS= read -r line; do
+ printf "%s %s\n" "$prefix" "$line"
+ done
+}
+
run () {
tag=$1 cmd=$2; shift 2
## Run CMD, logging its output in a pleasing manner.
run () {
tag=$1 cmd=$2; shift 2
## Run CMD, logging its output in a pleasing manner.
@@
-94,8
+103,8
@@
run () {
{ { { ( set +e
"$cmd" "$@" 3>&- 4>&- 5>&- 9>&-
echo $? >&5; ) |
{ { { ( set +e
"$cmd" "$@" 3>&- 4>&- 5>&- 9>&-
echo $? >&5; ) |
-
while IFS= read line; do echo "| $line"; done
>&4; } 2>&1 |
-
while IFS= read line; do echo "* $line"; done
>&4; } 4>&1 |
+
copy "|"
>&4; } 2>&1 |
+
copy "*"
>&4; } 4>&1 |
cat >&9; } 5>&1 </dev/null
)
case $rc in
cat >&9; } 5>&1 </dev/null
)
case $rc in