diff --git a/scripts/jw-pkg b/scripts/jw-pkg index 49e02696..73a0b1fc 100644 --- a/scripts/jw-pkg +++ b/scripts/jw-pkg @@ -67,6 +67,34 @@ check_ldconfig() list_packages() { + local query_tags="" + + eval set -- `getopt -- VPNUD "$@"` + while [ "$1" != -- ]; do + case $1 in + -V) + query_tags="$query_tags %{Vendor}" + ;; + -P) + query_tags="$query_tags %{Packager}" + ;; + -U) + query_tags="$query_tags %{URL}" + ;; + -D) + query_tags="$query_tags %{Distribution}" + ;; + *) + echo -e "Unexpected argument >$1<\n" >&2 + usage 1 + ;; + esac + shift + done + shift + + [ "$query_tags" ] || query_tags="%{URL}" + local names="$1" local rpm_args if [ -n "$names" ]; then @@ -74,16 +102,16 @@ list_packages() else rpm_args="$rpm_args -a" fi - rpm -q --queryformat '%{NAME}: %{URL}\n' $rpm_args | \ - grep -i '^[^ ]\+:.*\(jannet\.de\|janware\.com\)' | \ + rpm -q --queryformat "%{Name}: $query_tags\n" $rpm_args | \ + grep -i '^[^ ]\+:.*\(jannet\|janware\)' | \ sed 's/\(^[^ ]\+\) *:.*/\1/; s/[ ]*$//' |\ sort -u } list_projects() { - list_packages "$@" | xargs -r rpm -q --queryformat '%{SOURCERPM}: %{URL}\n' | \ - sed 's/\(^[^ ]\+\) *:.*/\1/; s/[ ]*$//; s/-[0-9]\+.*//' |\ + list_packages "$@" | xargs -r rpm -q --queryformat '%{SOURCERPM}\n' | \ + sed 's/[ ]*//; s/-[0-9]\+.*//' |\ sort -u }