#!/bin/sh -ef # List installed packages parser_definition() { setup REST help:usage -- \ "usage: ${0##*/} [-cq] pkg..." \ "or: ${0##*/} -C pkg [true-statement [false-statement]]" \ "or: ${0##*/} -V pkg version [release]" msg -- '' 'Options:' flag CURRENT -c --current -- "Use the current directory as a package" flag quiet -q --quiet -- "Make the operation quiet" param PKG -C --check label:"-C, --check PKG TRUE FALSE" -- \ "Check if PKG exists and return the string of TRUE if" \ "it exists, and the string of FALSE if it doesn't." \ "Useful for optional packaging." flag VERSIONCHECK -V --version-check label:"-V, --version-check PKG VER REL" -- \ "Check if given package exists in the given version" \ "and release numbers. Returns success or failure depending" \ "on the outcome." global_options } if [ -f ./cpt-lib ]; then . ./cpt-lib; else . cpt-lib; fi # There is no proper way I can think of doing this directly in the option # parser, so let's make sure that only one operation is selected. [ "$PKG" ] && [ "$VERSIONCHECK" ] && die "Only one operation between '-C' and '-V' can be selected." if [ "$PKG" ]; then if pkg_list "$PKG" >/dev/null 2>&1; then printf %s "$1" else printf %s "$2" fi elif [ "$VERSIONCHECK" ]; then [ "$#" -ge 2 ] || die "Minimum of 2 arguments required, got: $#" pkg_list "$1" | grep -Fq "$1 $2 $3" else [ "$CURRENT" ] && set -- "${PWD##*/}" [ "$quiet" ] && exec >/dev/null 2>&1 pkg_list "$@" fi