3 #==============================================================================
5 # File ID: 89302bf2-f33a-11e4-a2d5-000df06acc56
7 # Read a stream of \n-separated filenames from stdin and remove
8 # everything that's not plain files or symlinks that exist locally.
10 # Author: Øyvind A. Holm <sunny@sunbase.org>
11 # License: GNU General Public License version 2 or later.
12 #==============================================================================
14 progname
=strip-nonexisting
22 -h|
--help) opt_help
=1; shift ;;
23 -q|
--quiet) opt_quiet
=$
(($opt_quiet + 1)); shift ;;
24 -v|
--verbose) opt_verbose
=$
(($opt_verbose + 1)); shift ;;
25 --version) echo $progname $VERSION; exit 0 ;;
28 if printf '%s\n' "$1" |
grep -q ^
-; then
29 echo "$progname: $1: Unknown option" >&2
37 opt_verbose
=$
(($opt_verbose - $opt_quiet))
39 if test "$opt_help" = "1"; then
40 test $opt_verbose -gt 0 && { echo; echo $progname $VERSION; }
43 Read a stream of \\n-separated filenames from stdin and remove
44 everything that's not plain files or symlinks that exist locally.
46 Can be used with git-annex, for example:
48 git log --raw --since=1.week "\$@" | grep ^: | cut -f 2 | sort -u | \\
49 strip-nonexisting | xargs -d \\\\n git annex fsck --quiet
51 will run a "git annex fsck --quiet" on every file added less than one
52 week ago. git annex will refuse to run if it receives any invalid paths,
55 Only files or symlinks will be listed. Everything else (directories,
56 fifos, device files, etc) is removed.
58 Usage: $progname [options]
65 Be more quiet. Can be repeated to increase silence.
67 Increase level of verbosity. Can be repeated.
69 Print version information.
76 test -f "$f" -o -L "$f" && echo "$f"
79 # vim: set ts=8 sw=8 sts=8 noet fo+=w tw=79 fenc=UTF-8 :