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/d2u | |
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/d2u')
-rwxr-xr-x | bin/d2u | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -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}" |