aboutsummaryrefslogtreecommitdiff
path: root/bin/u2d
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/u2d
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/u2d')
-rwxr-xr-xbin/u2d13
1 files changed, 13 insertions, 0 deletions
diff --git a/bin/u2d b/bin/u2d
index 662876e3..505b3d04 100755
--- a/bin/u2d
+++ b/bin/u2d
@@ -1,14 +1,27 @@
#!/bin/sh
+# Convert UNIX line endings to DOS ones
+
+# Check arguments
if [ "$#" -eq 0 ] ; then
printf >&2 'u2d: 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/
g/^\$/ s/\$/$r/
w
EOF
done
+
+# If any of the ed(1) commands failed, we should exit with 1
exit "${ex:-0}"