summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorP. 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)
commit409c85803025348bda15120ab2c9e5a9c47a7237 (patch)
tree18a5aac7d097bb2e0792832f07ae82782453ea6f /src
parenta06f4325d1c2dc9301890f975ec6de82a1408bde (diff)
Support package status overrides. TODO: Document.
Diffstat (limited to 'src')
-rw-r--r--src/oh-checkbuilddeps.sh45
-rw-r--r--src/opkbuild.sh8
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'