summaryrefslogtreecommitdiffstats
path: root/src/oh-checkbuilddeps.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/oh-checkbuilddeps.sh')
-rw-r--r--src/oh-checkbuilddeps.sh45
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' \