From 409c85803025348bda15120ab2c9e5a9c47a7237 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Tue, 20 Mar 2012 20:24:39 -0400 Subject: Support package status overrides. TODO: Document. --- (limited to 'src') 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' \ diff --git a/src/opkbuild.sh b/src/opkbuild.sh index faa72ef..7d5f963 100644 --- a/src/opkbuild.sh +++ b/src/opkbuild.sh @@ -40,7 +40,7 @@ error() exit 1 } -opts=$(getopt -n "${0}" -o 'r:p:d' -- "${@}") +opts=$(getopt -n "${0}" -o 'r:p:ds:' -- "${@}") if [ ${?} -ne 0 ]; then print_usage "${0}" >&2 exit 1; @@ -60,6 +60,10 @@ while true; do dbg=true shift ;; + -s) + status_override=${2} + shift 2 + ;; --) shift break @@ -152,7 +156,7 @@ export OH_PKGVER=${version} . @@DATADIR@@/opkhelper/buildflags/${OH_ARCH_CPU} # Check build dependencies. -oh-checkbuilddeps || error "${srcpkg}-src" +oh-checkbuilddeps -s "${status_override}" || error "${srcpkg}-src" printf '\n' -- cgit v0.9.1