list-cvs-files.sh: Add support for -z options

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-05-07 20:33:41 +00:00
commit 8dc4c9a465
2 changed files with 23 additions and 9 deletions

View file

@ -13,6 +13,15 @@ filter_deleted()
done
}
output()
{
if [ "$zero_terminate" = 1 ]; then
echo -en "$*\x00"
else
echo "$*"
fi
}
list_dirents_cvs()
{
local dirs=`sed '/^D\// !d; s%^D/%%; s%/.*%%' $1/CVS/Entries`
@ -26,18 +35,18 @@ list_dirents_cvs()
files="`filter_deleted $1/CVS/Entries $files`"
local d f
for f in $files; do
echo $1/$f
output "$1/$f"
done
for d in $dirs; do
[ "$opt_only_regular_files" != 1 ] && echo $1/$d
[ "$opt_only_regular_files" = 1 ] || output $1/$d
list_dirents_cvs $1/$d
done
}
list_dirents_git()
{
git ls-files $1
[ "$opt_no_submodules" = 1 ] || git submodule foreach 'git ls-files | sed "s|^|$path/|"'
git ls-files $git_ls_files_opts $1
[ "$opt_no_submodules" = 1 ] || git submodule foreach "git ls-files $git_ls_files_opts | sed 's|^|\$path/|'"
}
list_dirents()
@ -53,7 +62,7 @@ list_dirents()
list_dirents_git $1
}
set -- `getopt fn "$@"`
set -- `getopt fnz "$@"`
while [ "$1" != -- ]; do
case $1 in
@ -63,6 +72,11 @@ case $1 in
-n)
opt_no_submodules=1
;;
-z)
zero_terminate=1
git_ls_files_opts="$git_ls_files_opts -z"
opt_sort="$opt_sort -z"
;;
esac
shift
done
@ -71,5 +85,5 @@ shift
proj_dir="$1"
[ "$proj_dir" ] && cd $proj_dir
list_dirents . | sort
list_dirents . | sort $opt_sort