diff options
Diffstat (limited to 'debian/signing-template.generate')
| -rwxr-xr-x | debian/signing-template.generate | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/debian/signing-template.generate b/debian/signing-template.generate new file mode 100755 index 00000000..19a4fbcd --- /dev/null +++ b/debian/signing-template.generate @@ -0,0 +1,43 @@ +#!/bin/sh +set -e -u + +distribution="$(dpkg-parsechangelog -S Distribution)" +urgency="$(dpkg-parsechangelog -S Urgency)" +date="$(dpkg-parsechangelog -S Date)" +version_binary="$(dpkg-parsechangelog -S Version)" +version_mangled="$(dpkg-parsechangelog -S Version | tr '-' '+')" +pkg_name="shim-helpers-${DEB_HOST_ARCH}-signed-template" +final_pkg_name="${pkg_name%-template}" + +subst () { + sed \ + -e "s/@efi@/${EFI_ARCH}/g" \ + -e "s/@arch@/${DEB_HOST_ARCH}/g" \ + -e "s/@version_binary@/${version_binary}/g" \ + -e "s/@version_mangled@/${version_mangled}/g" \ + -e "s/@distribution@/${distribution}/g" \ + -e "s/@urgency@/${urgency}/g" \ + -e "s/@date@/${date}/g" \ + -e "s/@final_pkg_name@/${final_pkg_name}/g" \ + "$@" +} + +template='./debian/signing-template' +pkg_dir="debian/${pkg_name}/usr/share/code-signing/${pkg_name}" +pkg_deb="${pkg_dir}/source-template/debian" + +install -o 0 -g 0 -m 0755 -d "${pkg_dir}" +subst < ./debian/signing-template.json.in > "${pkg_dir}/files.json" + +find "${template}" -type f -printf '%P\n' | +while read path +do + src="${template}/${path}" + dst=$(echo "${pkg_deb}/${path}" | subst) + + install -o 0 -g 0 -m 0755 -d "${dst%/*}" + subst < "${src}" > "${dst%.in}" + chmod --reference="${src}" "${dst%.in}" +done + +exit 0 |
