]> pd.if.org Git - zpackage/blobdiff - zpm-ipkgfile
add -P option to zpm to add to exec path
[zpackage] / zpm-ipkgfile
index 310a7b7cd569ee75ba1b666ce6f146b9cd5ff591..088f807a805a3e6f0139897373d8258da0baddc0 100755 (executable)
@@ -1,5 +1,12 @@
 #!/bin/sh
 
+# install a file from a package
+# -f pkgfile
+# -R root of pkg
+# -P prefix to file
+# -S strip prefix
+# -p pkgname
+
 pkgroot=/
 
 while getopts :f:v:r:d:a:u:l:p:b:P:R: opt; do
@@ -8,24 +15,18 @@ while getopts :f:v:r:d:a:u:l:p:b:P:R: opt; do
                 f) pkgfile="$OPTARG" ;;
                 v) pkgver="$OPTARG" ;;
                 r) pkgrel="$OPTARG" ;;
-                d) description="$OPTARG" ;;
-                a) arch="$OPTARG" ;;
-                u) url="$OPTARG" ;;
-                l) licenses="$OPTARG" ;;
-                p) packager="$OPTARG" ;;
-                b) builddate="$OPTARG" ;;
                 P) prefix="$OPTARG" ;;
         esac
 done
 shift $((OPTIND - 1))
 
 die() {
-       echo $* 1&>2
+       echo $* 1>&2
        exit 1
 }
 
 pkgfileinfo() {
-       sqlite3 $pkgfile<<EOS
+       zpm shell $pkgfile<<EOS
 select $1 from packagefiles
        where path='$2'
        and package||'-'||version||'-'||release = '$pkg'
@@ -43,11 +44,11 @@ shift
 
 set -e
 for path in $*; do
-       fhash=$(pkgfileinfo hash $path)
-       mode=$(pkgfileinfo mode $path)
-       owner=$(pkgfileinfo username $path)
-       group=$(pkgfileinfo groupname $path)
-       ftype=$(pkgfileinfo filetype $path)
+       fhash=$(zpm pkgfileinfo hash $path)
+       mode=$(zpm pkgfileinfo mode $path)
+       owner=$(zpm pkgfileinfo username $path)
+       group=$(zpm pkgfileinfo groupname $path)
+       ftype=$(zpm pkgfileinfo filetype $path)
        name=$(basename -- $path)
 
        if [ "$pkgroot" != '/' ]; then
@@ -60,11 +61,21 @@ for path in $*; do
 
        tmppath=$dir/.installing.$name
 
-       cat <<-EOC
+       # can't use install because it's not posix.
+       # probably worth writing a zpm-install, but with
+       # a different name since that wants to be a package install
+       # probably makes the most sense for extract to know how
+       # to do the extract to temp and such, then
+       # you can just add the -S option (secure)
+       #cat <<-EOC
+       set -x
        mkdir -p $dir
        zpm extract $pkgfile $fhash $tmppath 0
        chown $owner:$group $tmppath
        chmod $mode $tmppath
-       mv $tmppath $dir/$name
-       EOC
+       # TODO mv -n non-posix, going to need to have extract do all
+       # of this
+       mv -n $tmppath $dir/$name
+       set +x
+       #EOC
 done