diff options
Diffstat (limited to 'src/oh-checkbuilddeps.sh')
-rw-r--r-- | src/oh-checkbuilddeps.sh | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/src/oh-checkbuilddeps.sh b/src/oh-checkbuilddeps.sh index 6966d33..62de266 100644 --- a/src/oh-checkbuilddeps.sh +++ b/src/oh-checkbuilddeps.sh @@ -23,10 +23,38 @@ print_usage() { - printf 'Usage: %s...\n' "$1" + printf 'Usage: %s\n' "$1" } +opts=$(getopt -n "${0}" -o 's:' -- "${@}") +if [ ${?} -ne 0 ]; then + print_usage "${0}" >&2 + exit 1; +fi +eval set -- "${opts}" +while true; do + case "${1}" in + -s) + status_file="${2}" + shift 2 + break + ;; + --) + shift + break + ;; + *) + print_usage "${0}" >&2 + exit 1 + ;; + esac +done +if [ "${1}" = '--' ]; then + shift +fi + if [ ${#} -ne 0 ]; then + echo $1 print_usage ${0} >&2 exit 1 fi @@ -34,9 +62,22 @@ fi printf 'oh-checkbuilddeps: Checking build dependencies...\n' IFS=',' - for dep in $(oh_get_field Build-Depends); do + # XXX: Do all shells split fields in a 'for' construct all at once, or do + # some split only as much as they need each iteration? + unset IFS + + # Strip leading and trailing whitespace. dep=$(echo ${dep} | sed 's/^ *\(.*\) *$/\1/') + + # Check for the dependency in the package status override file, if provided. + if [ -n "${status_file}" ]; then + grep "${dep}" "${status_file}" > /dev/null + if [ ${?} -eq 0 ]; then + continue; + fi + fi + # TODO: Test this. if [ -z "$(opkg status "${dep}" | grep "^Package: ${dep}")" ]; then printf 'oh-checkbuilddeps: Error: Dependency %s not installed.\n' \ |