summaryrefslogtreecommitdiffstats
path: root/src/1/ppt-mkpkgs
diff options
context:
space:
mode:
Diffstat (limited to 'src/1/ppt-mkpkgs')
-rw-r--r--src/1/ppt-mkpkgs75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/1/ppt-mkpkgs b/src/1/ppt-mkpkgs
new file mode 100644
index 0000000..b114a74
--- /dev/null
+++ b/src/1/ppt-mkpkgs
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+set -eu
+
+PLAT=
+
+main()
+{
+ PLAT="$(sed '1{s/^config-\([^ ][^ ]*\) (.*$/\1/;};1!q;' changelog)"
+
+ make_common_pkg
+ make_build_time_pkgs
+ make_run_time_pkgs
+}
+
+info()
+{
+ local fmt="${1}"
+ shift 1
+
+ printf "ppt-mkpkgs: ${fmt}\n" "${@}"
+}
+
+make_common_pkg()
+{
+ # Make "-common" package to provide source package documentation files.
+ mkdir -p "config-${PLAT}-common.pkg"
+ cat >"config-${PLAT}-common.pkg/control" <<-EOF
+ Architecture: all
+ Platform: all
+ Description: "${PLAT}" platform configuration - common files
+ EOF
+ >"config-${PLAT}-common.pkg/docs"
+ info 'Metadata for package "%s" generated.' "config-${PLAT}-common"
+}
+
+make_build_time_pkgs()
+{
+ local pkg=
+
+ # Make each config-*-* package.
+ for pkg in src/build/*; do
+ pkg="${pkg#src/build/}"
+ mkdir -p "config-${pkg}-${PLAT}.pkg"
+ cat >"config-${pkg}-${PLAT}.pkg/control" <<-EOF
+ Architecture: all
+ Platform: all
+ Depends: config-${PLAT}-common (= \${Binary-Version})
+ Description: "${PLAT}" platform configuration for ${pkg}
+ EOF
+ info 'Metadata for package "%s" generated.' \
+ "config-${pkg}-${PLAT}"
+ done
+}
+
+make_run_time_pkgs()
+{
+ local pkg=
+
+ # Make each config-* package.
+ for pkg in src/run/*; do
+ pkg="${pkg#src/run/}"
+ mkdir -p "config-${pkg}.pkg"
+ cat >"config-${pkg}.pkg/control" <<-EOF
+ Architecture: all
+ Platform: ${PLAT}
+ Depends: config-${PLAT}-common (= \${Binary-Version})
+ Description: "${PLAT}" platform configuration for ${pkg}
+ EOF
+ info 'Metadata for package "%s" generated.' \
+ "config-${pkg}"
+ done
+}
+
+main "${@}"