collect-installed-pkg-changes.sh: Ddefault packages to jw-pkg list

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2025-02-19 16:49:36 +00:00
commit 856dae7efa

View file

@ -18,7 +18,7 @@ fatal()
lp()
{
find . -name "$1" | grep -v "/dist/\|/include/"
scm.sh ls-files | grep "/$1$"
}
usage()
@ -27,6 +27,63 @@ usage()
[ "$1" ] && exit $1
}
collect_changes()
{
local projs="$*"
local proj changed_path project_path p b lp
[ "$projs" ] || {
if [ -f .git ]; then
projs=`pwd | xargs basename`
projs="$proj-run $proj-devel"
else
projs="$(jw-pkg list | sed 's/-[0-9].*//')"
fi
}
for proj in $projs; do
(
changed_paths=`rpm -qV $proj | sed '
/^..5.*/ !d
s%^..5...... . /%/%
'`
[ "$changed_paths" ] || exit
project_path=$(echo $proj | sed 's/-run$\|-devel$//')
cd $project_path || {
err "Failed to change to $project_path"
exit
}
log "Handling project $proj"
for p in $changed_paths; do
[ -r $p ] || {
err "can't read $p"
continue
}
b=`basename $p`
lp=`lp "$b"`
[ "$lp" ] || {
err "$p is not in repository"
continue
}
nl=`lp "$b" | wc -l`
[ $nl -gt 1 ] && {
log $p is more than once in repository:
lp $b
continue
}
diff -q $lp $p >/dev/null 2>&1 && {
continue
}
log copying $p $lp
cp $p $lp
done
)
done
}
# -- here we go
set -- `getopt 'ht:' $*`
@ -51,35 +108,4 @@ shift
cd $target || fatal "failed to change to target dir \"$target\""
}
proj=$1
[ "$proj" ] || {
proj=`pwd | xargs basename`
proj="$proj-run $proj-devel"
}
changed_paths=`rpm -qV $proj | sed '
/^..5.*/ !d
s%^..5...... . /%/%
'`
for p in $changed_paths; do
[ -r $p ] || {
fatal "can't read $p"
}
b=`basename $p`
lp=`lp "$b"`
[ "$lp" ] || {
fatal "$p is not in repository"
}
nl=`lp $b | wc -l`
[ $nl -gt 1 ] && {
log $p is more than once in repository:
lp $b
fatal exiting
}
diff -q $lp $p >/dev/null 2>&1 && {
continue
}
log copying $p $lp
cp $p $lp
done
collect_changes