diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2016-08-09 17:15:40 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2016-08-09 17:20:10 +1200 |
commit | 9fb350dc7c8cc5259ef24e0cb097031179fab1d6 (patch) | |
tree | 839dd0b8ee3f5323b1cd6aefa22b605b99437d62 /bin/u2d | |
parent | Mention nosls/sls flags in slsf(1) man page (diff) | |
download | dotfiles-9fb350dc7c8cc5259ef24e0cb097031179fab1d6.tar.gz dotfiles-9fb350dc7c8cc5259ef24e0cb097031179fab1d6.zip |
Improve commenting/exit handling in binscripts
Diffstat (limited to 'bin/u2d')
-rwxr-xr-x | bin/u2d | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -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}" |