diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2016-11-25 20:49:00 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2016-11-25 20:49:00 +1300 |
commit | a823aa9f193e2d83fe7882363e59a5b06dba13f2 (patch) | |
tree | f3381b2a7fd13344a07f424f53145e243005334a /bin/cf | |
parent | Less clumsy method of counting (diff) | |
download | dotfiles-a823aa9f193e2d83fe7882363e59a5b06dba13f2.tar.gz dotfiles-a823aa9f193e2d83fe7882363e59a5b06dba13f2.zip |
Centralize cf(1df)/cfr(1df)
They are almost exactly the same script now; there might be a better way
to do this
Diffstat (limited to 'bin/cf')
-rwxr-xr-x | bin/cf | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -1,22 +1,31 @@ #!/bin/sh # Count entries in a given set of directories -self=cf # Iterate over remaining non-option arguments (directories); default to current # directory if none given for dir in "${@:-.}" ; do + # Strip a trailing slash + dir=${dir%/} + + # If the path is not absolute or already pre-dotted, tack a ./ to + # the front so that find(1) doesn't choke; otherwise juse use it + # as-is + case $dir in + /*|./*) fdir=$dir ;; + *) fdir=./$dir ;; + esac + # Warn if a non-directory was given, flag errors, but continue if ! [ -d "$dir" ] ; then - printf >&2 '%s: %s: not a directory\n' \ - "$self" "$dir" + printf >&2 'cf: %s: not a directory\n' "$dir" ex=1 continue fi # Count the files count=$( - find "$dir" -path "$dir"'/*' -prune -exec printf %.sx {} + | + find "$fdir" -path "$fdir"'/*' -prune -exec printf %.sx {} + | wc -c ) |