summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Phillips <david@sighup.nz>2018-07-26 21:53:18 +1200
committerDavid Phillips <david@sighup.nz>2018-07-26 21:58:57 +1200
commite0c6d9110f658d1fb22c07fa398d3f50b23612e3 (patch)
tree00ad43706c25aafd4a974f6af352ecbbfe1a51f2
parent4048d6f5dbaca8ff078dc4941c55338bea485fc6 (diff)
downloadpkg-introspect-master.tar.xz
Fill some help holes inHEADmaster
-rwxr-xr-xintrospect.sh57
1 files changed, 47 insertions, 10 deletions
diff --git a/introspect.sh b/introspect.sh
index 9ae80ed..850d03b 100755
--- a/introspect.sh
+++ b/introspect.sh
@@ -1,32 +1,69 @@
#!/bin/bash
+function assert_eq() {
+ local expected="$1"
+ local actual="$2"
+ local message="$3"
+ if [ "$1" -ne "$2" ] ; then
+ if [ ! -z "$message" ]; then
+ echo "$message"
+ fi
+ die_usage
+ fi
+}
+
+function assert_le() {
+ local expected="$1"
+ local actual="$2"
+ local message="$3"
+ if [ "$1" -gt "$2" ] ; then
+ if [ ! -z "$message" ]; then
+ echo "$message"
+ fi
+ die_usage
+ fi
+}
+
+function get_pkginfo() {
+ local file="$1"
+ # FIXME remove dep on GNU tar
+ tar --to-stdout -xf "$file" .PKGINFO
+}
+
function get_pkginfo_field() {
local file="$1"
local field="$2"
- # FIXME remove dep on GNU tar
- tar --to-stdout -xf "$file" .PKGINFO | grep '^'"$field"'' | awk -F' = ' '{print $2}'
+ get_pkginfo "$file" | grep '^'"$field"'' | awk -F' = ' '{print $2}'
}
function die_usage() {
- echo "FIXME"
+ echo "Syntax: introspect.sh <action> [options]"
+ echo ""
+ echo "Valid actions:"
+ echo "all <package>"
+ echo "field <package> <field_name>"
+ echo "files <package>"
+ exit 1
}
-if [ "$#" -le 2 ]; then
- echo Not enough arguments
- die_usage
-fi
+assert_le 2 $# "Not enough arguments"
case "$1" in
+ "all")
+ assert_eq 2 $#
+ get_pkginfo $2
+ ;;
"field")
- # FIXME must have two more aguments
+ assert_eq 3 $#
get_pkginfo_field $2 $3
;;
"files")
- echo Not implemented
+ assert_eq 2 $#
+ echo Files not implemented
exit 1
;;
*)
- echo "Unknown action \"$2\""
+ echo "Unknown action \"$1\""
die_usage
;;
esac