pkgroot=/
# allocate an install id, perhaps hash package and timestamp
+# installid=$(echo $(date) $pkglist | zpm hash)
+
# extract pre-scripts and run them
# get list of paths to install
# for each path, if directory, create and set mode
# move into place
# after all the files, extract post scripts and run them
+# also need to mark package as installing so if it fails part way
+# through, it can be finished later
+# probably also want an option to "backup" any packages being upgraded
+# so it's trivial to downgrade or to revert if the install fails
+
# option for "multipackage" just to let the system know that's what you meant
# option to take filenames from stdin
# parse package, version, release from file if not given
+# TODO what's the difference between prefix and pkgroot
+# need an option to not chown the files
+# option to install but not merge/track
while getopts :f:v:r:d:a:u:l:p:b:P:R: opt; do
case $opt in
R) pkgroot="$OPTARG" ;;
done
shift $((OPTIND - 1))
-set -e
+die() {
+ echo $* 1>&2
+ exit 1
+}
+
if [ -z "$pkgfile" ]; then
# actually, if no pkgfile, get pkgfile from repo
+ # but need to loop over finding package files then
+ # so this program probably needs to be "install from pkgfile"
+ # and a separate one that will loop over a package
+ # spec list and find from repos
+ die "must specify package file"
pkgfile="$package-$pkgver-$pkgrel.zpm"
fi
-die() {
- echo $* 1&>2
- exit 1
-}
-
set -e
zpm test -v $pkgfile
-set +e
if [ $# -gt 0 ]; then
pkglist="$@"
# add package info to local package db
# zpm merge -L -f $pkgfile $pkg
+ # check for conflicts
# mark package in localdb as installing
# zpm setmark installing $pkg
# install all the files for a package