mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
make, scripts: Replace list-vcs-files.sh by scm.sh ls-files
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
f34c97e96c
commit
e827efadd5
9 changed files with 106 additions and 107 deletions
|
|
@ -1,97 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
export LANG=POSIX
|
||||
|
||||
filter_deleted()
|
||||
{
|
||||
local rc_file="$1"
|
||||
shift
|
||||
local cand
|
||||
for cand in "$@"; do
|
||||
grep -q "^R ./$cand/" $rc_file && continue
|
||||
echo $cand
|
||||
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`
|
||||
dirs="`filter_deleted $1/CVS/Entries $dirs`"
|
||||
local cands
|
||||
if [ -f $1/CVS/Entries.Log ]; then
|
||||
cands="`sed '/^A D\// !d; s%^A D/%%; s%/.*%%' $1/CVS/Entries.Log`"
|
||||
dirs="$dirs `filter_deleted $1/CVS/Entries.Log $cands`"
|
||||
fi
|
||||
local files=`sed '/^\// !d; s%/%%; s%/.*%%; s%^%%' $1/CVS/Entries`
|
||||
files="`filter_deleted $1/CVS/Entries $files`"
|
||||
local d f
|
||||
for f in $files; do
|
||||
output "$1/$f"
|
||||
done
|
||||
for d in $dirs; do
|
||||
[ "$opt_only_regular_files" = 1 ] || output $1/$d
|
||||
list_dirents_cvs $1/$d
|
||||
done
|
||||
}
|
||||
|
||||
list_dirents_git()
|
||||
{
|
||||
local opts="$git_ls_files_opts"
|
||||
[ "$opt_no_submodules" = 1 ] || opts="$opts --recurse-submodules"
|
||||
git ls-files $opts $1
|
||||
}
|
||||
|
||||
list_dirents()
|
||||
{
|
||||
if [ -d $1/CVS ]; then
|
||||
list_dirents_cvs $1
|
||||
return
|
||||
fi
|
||||
git status >/dev/null 2>&1 || {
|
||||
echo "failed to list versioned files in $1: no VCS" >&2
|
||||
exit 1
|
||||
}
|
||||
list_dirents_git $1
|
||||
}
|
||||
|
||||
set -- `getopt fnzt "$@"`
|
||||
|
||||
while [ "$1" != -- ]; do
|
||||
case $1 in
|
||||
-f)
|
||||
opt_only_regular_files=1
|
||||
;;
|
||||
-n)
|
||||
opt_no_submodules=1
|
||||
;;
|
||||
-z)
|
||||
zero_terminate=1
|
||||
git_ls_files_opts="$git_ls_files_opts -z"
|
||||
opt_sort="$opt_sort -z"
|
||||
;;
|
||||
-t)
|
||||
text_files=1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
shift
|
||||
|
||||
proj_dir="$1"
|
||||
[ "$proj_dir" ] && cd $proj_dir
|
||||
|
||||
if [ "$text_files" ]; then
|
||||
list_dirents . | sort $opt_sort | xargs file -N | grep ":.*text" | cut -d: -f1
|
||||
else
|
||||
list_dirents . | sort $opt_sort
|
||||
fi
|
||||
|
||||
|
|
@ -90,7 +90,7 @@ scm_files()
|
|||
{
|
||||
(
|
||||
cd $TOPDIR
|
||||
/bin/bash $MOD_SCRIPT_DIR/list-vcs-files.sh -f $@
|
||||
/bin/bash $MOD_SCRIPT_DIR/scm.sh ls-files -f $@
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
100
scripts/scm.sh
100
scripts/scm.sh
|
|
@ -63,9 +63,106 @@ cmd_clean()
|
|||
esac
|
||||
}
|
||||
|
||||
cmd_ls_files()
|
||||
{
|
||||
filter_deleted()
|
||||
{
|
||||
local rc_file="$1"
|
||||
shift
|
||||
local cand
|
||||
for cand in "$@"; do
|
||||
grep -q "^R ./$cand/" $rc_file && continue
|
||||
echo $cand
|
||||
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`
|
||||
dirs="`filter_deleted $1/CVS/Entries $dirs`"
|
||||
local cands
|
||||
if [ -f $1/CVS/Entries.Log ]; then
|
||||
cands="`sed '/^A D\// !d; s%^A D/%%; s%/.*%%' $1/CVS/Entries.Log`"
|
||||
dirs="$dirs `filter_deleted $1/CVS/Entries.Log $cands`"
|
||||
fi
|
||||
local files=`sed '/^\// !d; s%/%%; s%/.*%%; s%^%%' $1/CVS/Entries`
|
||||
files="`filter_deleted $1/CVS/Entries $files`"
|
||||
local d f
|
||||
for f in $files; do
|
||||
output "$1/$f"
|
||||
done
|
||||
for d in $dirs; do
|
||||
[ "$opt_only_regular_files" = 1 ] || output $1/$d
|
||||
list_dirents_cvs $1/$d
|
||||
done
|
||||
}
|
||||
|
||||
list_dirents_git()
|
||||
{
|
||||
local opts="$git_ls_files_opts"
|
||||
[ "$opt_no_submodules" = 1 ] || opts="$opts --recurse-submodules"
|
||||
git ls-files $opts $1
|
||||
}
|
||||
|
||||
list_dirents()
|
||||
{
|
||||
if [ -d $1/CVS ]; then
|
||||
list_dirents_cvs $1
|
||||
return
|
||||
fi
|
||||
git status >/dev/null 2>&1 || {
|
||||
echo "failed to list versioned files in $1: no VCS" >&2
|
||||
exit 1
|
||||
}
|
||||
list_dirents_git $1
|
||||
}
|
||||
|
||||
set -- `getopt fnzt "$@"`
|
||||
|
||||
while [ "$1" != -- ]; do
|
||||
case $1 in
|
||||
-f)
|
||||
opt_only_regular_files=1
|
||||
;;
|
||||
-n)
|
||||
opt_no_submodules=1
|
||||
;;
|
||||
-z)
|
||||
zero_terminate=1
|
||||
git_ls_files_opts="$git_ls_files_opts -z"
|
||||
opt_sort="$opt_sort -z"
|
||||
;;
|
||||
-t)
|
||||
text_files=1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
shift
|
||||
|
||||
proj_dir="$1"
|
||||
[ "$proj_dir" ] && cd $proj_dir
|
||||
|
||||
if [ "$text_files" ]; then
|
||||
list_dirents . | sort $opt_sort | xargs file -N | grep ":.*text" | cut -d: -f1
|
||||
else
|
||||
list_dirents . | sort $opt_sort
|
||||
fi
|
||||
}
|
||||
|
||||
# ------- here we go
|
||||
export LANG=POSIX
|
||||
myname=`basename $0`
|
||||
cmd=cmd_$1
|
||||
cmd=cmd_${1//-/_}
|
||||
shift
|
||||
if [ -d "CVS" ]; then
|
||||
scm=cvs
|
||||
|
|
@ -74,4 +171,3 @@ else
|
|||
fi
|
||||
|
||||
$cmd "$@"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue