summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/create-build-support-package32
1 files changed, 27 insertions, 5 deletions
diff --git a/bin/create-build-support-package b/bin/create-build-support-package
index ad0fe30..ed09f87 100755
--- a/bin/create-build-support-package
+++ b/bin/create-build-support-package
@@ -211,16 +211,38 @@ elif [ -n "${shim_package}" ]; then
if [ ! -r "${shim_package}" ]; then
>&2 printf 'Cannot open file %s\n' \
"${shim_package}"
- usage
+ exit 1
fi
exec 8> "${package_database_lock_file}"
verbose_flock ${wait_for_lock} 8
- # TODO: find original package in database, check signature, retrieve
- # db, insert package into db, copy row in `binary_packages`, insert
- # row into `binary_packages_in_repositories`, add package to pool/,
- # send db
+ original_pkg_id=$(
+ # shellcheck disable=SC2016
+ {
+ printf 'SELECT DISTINCT `binary_packages`.`id`'
+ printf ' FROM `binary_packages`'
+ mysql_join_binary_packages_architectures
+ printf ' WHERE '
+ mysql_package_name_query \
+ | sed 's/pkgname`,"/\0-shim/'
+ printf '=from_base64("%s")' \
+ "$(
+ printf '%s' "${shim_package##*/}" \
+ | base64 -w0
+ )"
+ } | \
+ mysql_run_query
+ )
+ if [ -z "${original_pkg_id}" ]; then
+ >&2 printf 'could not find the original package to %s.\n' \
+ "${shim_package##*/}"
+ exit 1
+ fi
+
+ # TODO: check signature, retrieve db, insert package into db, copy
+ # row in `binary_packages`, insert row into
+ # `binary_packages_in_repositories`, add package to pool/, send db
else
>&2 echo 'Need either --from or --shim.'