-# do one thing and do it well
-# this program installs packages from a package file
-# by default, it will install the latest version of each package
-# found in the file.
-
-# todo
-
-# if package specifiers are given as arguments after the package file
-# it will only install those packages.
-
-# package specifiers are of the form pkg[-ver[-rel]], i.e the
-# release can be omitted, and the version-release can be omitted.
-# examples:
-# zpm install -f foo-0.1-1.zpm
-# zpm install -f foo.zpm foo-0.1
-
-# todo: file tag handling
-
-# what we need to install a package:
-
-# recording repo: where we record what we've done
-# source: where we get the package and files from
-# install root: really just a prefix, but thought about differently,
-# and we might need to do a chroot
-# package name to install, could be "all" or "all most recent"
-# but for now, assume only one package in a file?
-
-# zpm install [options] <package ...>
-
-pkgver=${ZPMPACKAGEVER:-1.0}
-pkgrel=${ZPMPACKAGEREL:-1}
-
-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
-# for each path, create leading directories
-# extract to something like /var/tmp/.hash, with low perms
-# only atomic if same filesystem, so use .installid.hash in the
-# install directory
-# set perms and such
-# 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
-
-# options
-# -R install root, if installing as root, will chroot?
-# -C no chroot, even if root
-# -N no pre-scripts
-# -X no post-scripts
-# -f source repository file
-# -d local (recording) repository database
-# -D don't locally record
-# -t only files matching tags
-# -T exclude files matching tags
-
-chroot=1
-
-while getopts :R:CNXf:d:Dt:T:u:g: opt; do