EOS
}
+conflicts() {
+ echo conflict check $pkg $pkgfile
+ #newver=$1
+ {
+ zpm shell $pkgfile<<-EOS
+ .separator " "
+ select hash,path from packagefiles
+ where package||'-'||version||'-'||release = '$pkg'
+ and filetype = 'r'
+ ;
+ EOS
+ } | while read hash path; do
+ rpath=$pkgroot$path
+ if [ -f $rpath ]; then
+ ihash=$(zpm hash $rpath)
+ if [ $ihash != $hash ]; then
+ die $path already exists
+ fi
+ elif [ -d $rpath ]; then
+ die $path already exists
+ fi
+ done
+
+ {
+ zpm shell $pkgfile<<-EOS
+ .separator " "
+ select path from packagefiles
+ where package||'-'||version||'-'||release = '$pkg'
+ and filetype = 'd'
+ ;
+ EOS
+ } | while read hash path; do
+ rpath=$pkgroot$path
+ if [ -f $rpath ]; then
+ die $path already exists
+ elif [ -d $rpath ]; then
+ die $path already exists
+ elif [ -e $rpath ]; then
+ die $path already exists
+ fi
+ done
+}
+
for pkg in $pkglist; do
pname=$(pkgname $pkg)
curver=$(zpm findpkg $ZPMDB $pname)
# check for conflicts
+ conflicts $pkgroot $pkg
+
# mark package in localdb as installing
# zpm setmark installing $pkg
# install all the files for a package
echo $filecount files
#die 'aborting for test'
#pathlist
+ zpm pkg $pkg status installing
pathlist | xargs zpm ipkgfile ${user+-u $user} ${group+-g $group} -R "$pkgroot" -f $pkgfile -- $pkg
# TODO find scripts marked as post-install
# TODO if this is an upgrade, run post-upgrade
# mark as ready for install
+ zpm pkg $pkg status installed
#zpm setmark ready $pkg
done