2016-10-04 15:19:23 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
log()
|
|
|
|
|
{
|
|
|
|
|
echo "=== $@"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err()
|
|
|
|
|
{
|
|
|
|
|
log $@
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fatal()
|
|
|
|
|
{
|
|
|
|
|
err $@
|
|
|
|
|
exit 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lp()
|
|
|
|
|
{
|
|
|
|
|
find . -name "$1" | grep -v "/dist/\|/include/"
|
|
|
|
|
}
|
|
|
|
|
|
2016-10-05 19:28:44 +00:00
|
|
|
usage()
|
|
|
|
|
{
|
|
|
|
|
echo "$myname [-h] [-t target-dir ] [ package-name ]"
|
|
|
|
|
[ "$1" ] && exit $1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# -- here we go
|
|
|
|
|
|
|
|
|
|
set -- `getopt 'ht:' $*`
|
|
|
|
|
while [ "$1" != -- ]; do
|
|
|
|
|
case "$1" in
|
|
|
|
|
-h)
|
|
|
|
|
usage 0
|
|
|
|
|
;;
|
|
|
|
|
-t)
|
|
|
|
|
target="$2"
|
|
|
|
|
shift
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
usage 1
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
shift
|
|
|
|
|
done
|
|
|
|
|
shift
|
|
|
|
|
|
|
|
|
|
[ "$target" ] && {
|
|
|
|
|
cd $target || fatal "failed to change to target dir \"$target\""
|
|
|
|
|
}
|
|
|
|
|
|
2016-10-04 15:19:23 +00:00
|
|
|
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
|
|
|
|
|
}
|
2016-10-05 19:28:44 +00:00
|
|
|
diff -q $lp $p >/dev/null 2>&1 && {
|
|
|
|
|
continue
|
|
|
|
|
}
|
2016-10-04 15:19:23 +00:00
|
|
|
log copying $p $lp
|
|
|
|
|
cp $p $lp
|
|
|
|
|
done
|