aboutsummaryrefslogtreecommitdiff
path: root/bin/d2u
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2016-08-09 17:15:40 +1200
committerTom Ryder <tom@sanctum.geek.nz>2016-08-09 17:20:10 +1200
commit9fb350dc7c8cc5259ef24e0cb097031179fab1d6 (patch)
tree839dd0b8ee3f5323b1cd6aefa22b605b99437d62 /bin/d2u
parentMention nosls/sls flags in slsf(1) man page (diff)
downloaddotfiles-9fb350dc7c8cc5259ef24e0cb097031179fab1d6.tar.gz
dotfiles-9fb350dc7c8cc5259ef24e0cb097031179fab1d6.zip
Improve commenting/exit handling in binscripts
Diffstat (limited to 'bin/d2u')
-rwxr-xr-xbin/d2u13
1 files changed, 13 insertions, 0 deletions
diff --git a/bin/d2u b/bin/d2u
index a2cb913a..6fe362b7 100755
--- a/bin/d2u
+++ b/bin/d2u
@@ -1,13 +1,26 @@
#!/bin/sh
+# Convert DOS line endings to UNIX ones
+
+# Check arguments
if [ "$#" -eq 0 ] ; then
printf >&2 'd2u: Need a filename\n'
exit 2
fi
+
+# Put a carriage return into a variable for convenience
r=$(printf '\r')
+
+# Iterate over arguments and apply the same ed(1) script to each of them
for fn ; do
+
+ # Note the heredoc WORD is intentionally unquoted because we want to expand
+ # $r within it to get a literal carriage return; the escape characters
+ # prescribed for ed(1) by POSIX are very limited
ed -s -- "$fn" <<EOF || ex=1
g/$r\$/ s/$r\$//
w
EOF
done
+
+# If any of the ed(1) commands failed, we should exit with 1
exit "${ex:-0}"