die() {
echo $* 1>&2
+ zpm log -i -a 'aborting install' -t "$pkgid" "$*"
exit 1
}
export ZPM_ROOT_DIR
fi
-# TODO mark already installed packages as updating?
for pkgstr in "$@"; do
pkgid=$(zpm findpkg -f $pkgfile $pkgstr)
if [ $? -ne 0 ]; then
- # TODO log
die "can't find package $pkgstr in $pkgfile"
fi
if [ $runscripts -gt 0 ]; then
# TODO run pre-upgrade script if needed
# zpm runscript -p pre-upgrade $current $pkgid
- zpm runscript -f $pkgfile -p pre-install $pkgid $current
+ zpm script -f $pkgfile -p pre-install $pkgid $current
if [ $? -ne 0 ]; then
- # TODO log
die "pre-install script for $pkgid failed"
fi
fi
zpm rmpackage $pkgid
zpm merge -f $pkgfile -s installing $pkgid
if [ $? -ne 0 ]; then
- # TODO log
die "merging $pkgid failed"
fi
+ else
+ zpm pkg $pkgid status=installing
fi
- # TODO but need to mark as installing if not merged
#zpm shell $ZPMDB 'select * from install_status' 1>&2
if [ $dryrun -gt 0 ]; then
zpm syncfs $syncopts -f $pkgfile
if [ $? -ne 0 ]; then
+ zpm pkg $pkgid status=failed
die 'zpm-syncfs failed';
fi
if [ $runscripts -gt 0 ]; then
- zpm runscript -f $pkgfile -p post-install $pkgid $current
+ zpm script -f $pkgfile -p post-install $pkgid $current
fi
if [ -n "$current" ]; then
# TODO skip configure if not on a terminal, regardless of settings
# TODO will need force option
if [ $runconfigure -gt 0 ]; then
- zpm runscript -f $pkgfile -p configure $pkgid $current
+ zpm script -f $pkgfile -p configure $pkgid $current
+ else
+ true
fi
done