summaryrefslogtreecommitdiffhomepage
path: root/vars/invariants_zipdist.vars
blob: 6bc9b7df5ea7732993e942bf30d930f16ca582f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#
# set -o errexit -o noglob are assumed.
#

pkg_invariants_zipdist_all() {
	local _dist_fname="" _pkg_name="" _pkglist_fname="${PREFIX}/pkglist.native";
	if ex_rtl_lmatch "${ARG_DIST}" , zipdist; then
		ex_rtl_log_msg info "Building deployable distribution ZIP archive...";
		for _pkg_name in $(cat "${_pkglist_fname}"); do
			if ! stat "${BUILD_WORKDIR}/${_pkg_name}-native-${DEFAULT_TARGET}" >/dev/null 2>&1; then
				ex_rtl_log_msg failexit "Error: missing package build directory for package \`${_pkg_name}'.";
			fi;
		done;
		_dist_fname="${DEFAULT_ZIPDIST_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.zip";
		if [ -e "${BUILD_WORKDIR}/zipdist" ]; then
			ex_rtl_fileop rm "${BUILD_WORKDIR}/zipdist";
		fi;
		ex_rtl_fileop mkdir "${BUILD_WORKDIR}/zipdist";
		"${BUILD_WORKDIR}/mpackage/mpackage.sh"				\
			--defroot="${DEFAULT_ZIPDIST_DEFROOT}"			\
			--flysyms						\
			--minroot="${PREFIX_MINIPIX}"				\
			--objroot="${BUILD_WORKDIR}"				\
			--pkgroot="${BUILD_WORKDIR}/zipdist/pkgroot"		\
			--product=Midipix					\
			--subset="${_pkglist_fname}"				\
			--symbols						\
			--sysroot="${BUILD_WORKDIR}/zipdist/sysroot"		\
			--target="${DEFAULT_TARGET}"				\
			--tmproot="${BUILD_WORKDIR}/zipdist/tmproot"		\
			--zipfile="${PREFIX}/${_dist_fname}";
		ex_rtl_log_msg info "Finished building deployable distribution ZIP archive.";
		if [ -n "${DEFAULT_ZIPDIST_SIGN_GPG_KEY}" ]\
		&& [ -x "$(which gpg 2>/dev/null)" ]\
		&& gpg --list-keys "${DEFAULT_ZIPDIST_SIGN_GPG_KEY}" >/dev/null 2>&1; then
			ex_rtl_log_msg info "Signing deployable distribution ZIP archive...";
			gpg --armor --passphrase-file /dev/null			\
				--local-user "${DEFAULT_ZIPDIST_SIGN_GPG_KEY}"	\
				--sign "${PREFIX}/${_dist_fname}";
			ex_rtl_log_msg info "Signed deployable distribution ZIP archive.";
		fi;
	fi;
};

# vim:filetype=sh