+++ /dev/null
-#!/bin/sh
-
-pkgfile=${ZPMDB:-/var/lib/zpm/local.db}
-
-long=0
-pkgonly=0
-quiet=0
-config=include
-showsoname=0
-status=
-sharedlibsonly=0
-
-while getopts f:qlncCLIs opt; do
- case $opt in
- f) pkgfile="$OPTARG" ;;
- l) long=1 ;;
- n) pkgonly=1 ;;
- q) quiet=1 ;;
- c) config=only ;;
- C) config=exclude ;;
- L) showsoname=1 ;;
- s) sharedlibsonly=1 ;;
- I) status=installed ;;
- esac
-done
-shift $((OPTIND - 1))
-
-if [ ! -f $pkgfile ]; then
- echo cannot find $pkgfile
- exit 1
-fi
-
-if [ $long -gt 0 ]; then
- cols="filetype,printf('%.4s', mode) as mode,username,groupname,"
-fi
-
-if [ $pkgonly -eq 1 ]; then
- cols="pkgid"
-elif [ $quiet -eq 0 ]; then
- cols="pkgid,$cols"
-fi
-
-pkglist=
-efail=0
-while [ $# -gt 0 ]; do
- pkg=$1
- shift
-
- if [ "$pkg" = ':' ]; then
- break
- fi
-
- pkgid=$(zpm findpkg -f $pkgfile "$pkg")
- if [ -n "$pkgid" ]; then
- pkglist="$pkglist $pkgid"
- else
- printf "package $pkg not found\n" 1>&2
- efail=1
- fi
-done
-
-if [ $efail -eq 1 ]; then
- exit 1;
-fi
-
-globlist=
-for glob in "$@"; do
- q=$(zpm quote -q "$glob")
- globlist="or path glob $q"
-done
-globlist=${globlist#'or '}
-
-cols=${cols%,}
-
-{
- printf '.separator " "\n'
-# printf '.echo on\n'
- printf 'select %s\n' "$cols"
-
- if [ $pkgonly -eq 0 ]; then
- if [ -n "$cols" ]; then
- printf ', '
- fi
-
- printf "case\n";
- printf "when filetype = 'd' then rtrim(path,'/') || '/'\n"
- printf "when filetype = 'l' then printf('%%s -> %%s', path, target)\n"
- if [ $showsoname -eq 1 ]; then
- printf "when EL.soname is not null then printf('%%s (%%s)', path, EL.soname)\n"
- fi
- printf "else path end as path\n"
- fi
- printf "from packagefiles_pkgid PF\n"
- if [ $showsoname -eq 1 ] || [ $sharedlibsonly -eq 1 ]; then
- printf "left join elflibraries EL on EL.file = PF.hash\n"
- fi
- if [ -n "$status" ]; then
- printf "join packages P on P.package = PF.package and P.version = PF.version and P.release = PF.release\n"
- fi
- printf "where true\n"
- if [ -n "$globlist" ]; then
- printf "and (%s)\n" "$globlist"
- fi
- if [ -n "$pkglist" ]; then
- printf "and pkgid in (%s)\n" "$(zpm quote -d, -q $pkglist)"
- fi
- case $config in
- only) printf "and configuration = 1\n" ;;
- exclude) printf "and configuration = 0\n" ;;
- esac
- if [ $sharedlibsonly -eq 1 ]; then
- printf "and EL.soname is not null\n"
- fi
- if [ -n "$status" ]; then
- printf "and P.status = '%s'\n" "$status"
- fi
- printf 'order by PF.package, PF.version collate vercmp, PF.release, PF.path\n'
- printf ';\n'
-} | zpm shell $pkgfile
-#} | cat