]> pd.if.org Git - zpackage/blobdiff - zpm-install
integrate previous work
[zpackage] / zpm-install
index 487740ddc4dbca063b3cbab96d1177dfa7a60bab..8d259c0be2ad9d4d40a9a2759e209b261d238545 100755 (executable)
@@ -7,6 +7,8 @@ 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
@@ -18,9 +20,17 @@ pkgroot=/
 # 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" ;;
@@ -38,20 +48,23 @@ while getopts :f:v:r:d:a:u:l:p:b:P:R: opt; do
 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="$@"
@@ -75,6 +88,7 @@ for pkg in $pkglist; do
 
        # 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