summaryrefslogtreecommitdiffstats
path: root/lib/package.sh
diff options
context:
space:
mode:
authorPatrick McDermott <patrick.mcdermott@libiquity.com>2019-03-13 02:51:56 (EDT)
committer Patrick McDermott <patrick.mcdermott@libiquity.com>2019-03-13 02:56:19 (EDT)
commit9033d4b6b9b85ab3e502b376daf66ae566c026b6 (patch)
tree5933fa9a313caff0ec5a0aa38e4087cba777c6d8 /lib/package.sh
parente153a4a392e2f6e616b2c94b77eb683eff9e644a (diff)
libopkbuild: Abort on invalid function arguments
Shift arguments and abort instead of returning 125. Incorrect numbers of function arguments suggest application/library incompatibilities or serious errors by the application developer. Either way, the application developer should be made immediately aware of this (and not allowed to simply not check return values), and continuing to run and handle any further API calls may be unsafe.
Diffstat (limited to 'lib/package.sh')
-rw-r--r--lib/package.sh117
1 files changed, 31 insertions, 86 deletions
diff --git a/lib/package.sh b/lib/package.sh
index 8664c99..1a07019 100644
--- a/lib/package.sh
+++ b/lib/package.sh
@@ -25,13 +25,8 @@ _OB_BINARY_PARAMETERS=
ob_init_package()
{
- local dir=
-
- if [ ${#} -eq 1 ]; then
- dir="${1}"
- else
- return 125
- fi
+ local dir="${1}"
+ shift 1 || _ob_abort
_OB_PACKAGE_DIR="$(cd "${dir}" && pwd)"
@@ -55,10 +50,8 @@ ob_init_package()
_ob_package_do()
{
- local func=
-
- func="${1}"
- shift 1
+ local func="${1}"
+ shift 1 || _ob_abort
"_ob_${func}_${_OB_PACKAGE_FORMAT}" "${@}"
@@ -81,16 +74,12 @@ ob_parse_package_metadata()
cache_file="${OPTARG}"
;;
?)
- return 125
+ _ob_abort
;;
esac
done
shift $(($OPTIND - 1))
- if [ ${#} -gt 0 ]; then
- return 125
- fi
-
# Load a previously saved cache file, if any.
if [ -n "${cache_file}" -a -r "${cache_file}" ]; then
if [ "${cache_file#*/}" != "${cache_file}" ]; then
@@ -151,16 +140,12 @@ ob_get_binary_packages()
host_plat="${OPTARG}"
;;
?)
- return 125
+ _ob_abort
;;
esac
done
shift $(($OPTIND - 1))
- if [ ${#} -gt 0 ]; then
- return 125
- fi
-
# NB: If a source package lists no binary packages, this will be true each
# call.
if [ -z "${_OB_BINARY_PACKAGES}" ]; then
@@ -218,17 +203,12 @@ ob_get_binary_packages()
ob_get_source_parameter()
{
- local name=
-
- if [ ${#} -eq 1 ]; then
- name="${1}"
- else
- return 125
- fi
+ local name="${1}"
+ shift 1 || _ob_abort
# Convert field name to uppercase and validate.
case "${name}" in *[!A-Za-z0-9-]* | '')
- return 125
+ return 1
esac
name="$(tr 'a-z-' 'A-Z_' <<-EOF
${name}
@@ -242,18 +222,12 @@ ob_get_source_parameter()
ob_get_binary_parameter()
{
- local package=
- local name=
-
- if [ ${#} -eq 2 ]; then
- package="${1}"
- name="${2}"
- else
- return 125
- fi
+ local package="${1}"
+ local name="${2}"
+ shift 2 || _ob_abort
if ! ob_validate_binary_name "${package}"; then
- return 125
+ return 1
fi
# Convert package name to its uppercase "clean" form.
@@ -264,7 +238,7 @@ ob_get_binary_parameter()
# Convert field name to uppercase and validate.
case "${name}" in *[!A-Za-z0-9-]* | '')
- return 125
+ return 1
esac
name="$(tr 'a-z-' 'A-Z_' <<-EOF
${name}
@@ -278,10 +252,6 @@ ob_get_binary_parameter()
ob_get_doc_package()
{
- if [ ${#} -gt 0 ]; then
- return 125
- fi
-
_ob_package_do 'get_doc_package'
return ${?}
@@ -289,15 +259,9 @@ ob_get_doc_package()
ob_get_doc_files()
{
- local arch=
- local plat=
-
- if [ ${#} -eq 2 ]; then
- arch="${1}"
- plat="${2}"
- else
- return 125
- fi
+ local arch="${1}"
+ local plat="${2}"
+ shift 2 || _ob_abort
_ob_package_do 'get_doc_files' "${arch}" "${plat}"
@@ -306,10 +270,6 @@ ob_get_doc_files()
ob_summarize_package_arch()
{
- if [ ${#} -gt 0 ]; then
- return 125
- fi
-
# XXX: Stub.
return 0
@@ -317,10 +277,6 @@ ob_summarize_package_arch()
ob_summarize_package_plat()
{
- if [ ${#} -gt 0 ]; then
- return 125
- fi
-
# XXX: Stub.
return 0
@@ -328,13 +284,8 @@ ob_summarize_package_plat()
ob_set_package_substvars()
{
- local pkg=
-
- if [ ${#} -eq 1 ]; then
- pkg="${1}"
- else
- return 125
- fi
+ local pkg="${1}"
+ shift 1 || _ob_abort
_ob_package_do 'set_package_substvars' "${pkg}"
@@ -343,9 +294,8 @@ ob_set_package_substvars()
_ob_set_binary_packages()
{
- local packages=
-
- packages="${1}"
+ local packages="${1}"
+ shift 1 || _ob_abort
_OB_BINARY_PACKAGES="${packages}"
@@ -354,15 +304,13 @@ _ob_set_binary_packages()
_ob_set_source_parameter()
{
- local name=
- local value=
-
- name="${1}"
- value="${2}"
+ local name="${1}"
+ local value="${2}"
+ shift 2 || _ob_abort
# Convert field name to uppercase and validate.
case "${name}" in *[!A-Za-z0-9-]* | '')
- return 125
+ return 1
esac
name="$(tr 'a-z-' 'A-Z_' <<-EOF
${name}
@@ -378,16 +326,13 @@ _ob_set_source_parameter()
_ob_set_binary_parameter()
{
- local package=
- local name=
- local value=
-
- package="${1}"
- name="${2}"
- value="${3}"
+ local package="${1}"
+ local name="${2}"
+ local value="${3}"
+ shift 3 || _ob_abort
if ! ob_validate_binary_name "${package}"; then
- return 125
+ return 1
fi
# Convert package name to its uppercase "clean" form.
@@ -398,7 +343,7 @@ _ob_set_binary_parameter()
# Convert field name to uppercase and validate.
case "${name}" in *[!A-Za-z0-9-]* | '')
- return 125
+ return 1
esac
name="$(tr 'a-z-' 'A-Z_' <<-EOF
${name}