diff options
author | P. J. McDermott <pjm@nac.net> | 2012-03-20 20:24:39 (EDT) |
---|---|---|
committer | P. J. McDermott <pjm@nac.net> | 2012-03-20 20:24:39 (EDT) |
commit | 409c85803025348bda15120ab2c9e5a9c47a7237 (patch) | |
tree | 18a5aac7d097bb2e0792832f07ae82782453ea6f /src | |
parent | a06f4325d1c2dc9301890f975ec6de82a1408bde (diff) |
Support package status overrides. TODO: Document.
Diffstat (limited to 'src')
-rw-r--r-- | src/oh-checkbuilddeps.sh | 45 | ||||
-rw-r--r-- | src/opkbuild.sh | 8 |
2 files changed, 49 insertions, 4 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' \ 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' |