From 409c85803025348bda15120ab2c9e5a9c47a7237 Mon Sep 17 00:00:00 2001
From: P. J. McDermott <pjm@nac.net>
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