# Copyright (C) 2023 Umorpha Systems # SPDX-License-Identifier: AGPL-3.0-or-later # Entrypoint/config ############################################################ SHELL = bash export osi_tools = $(CURDIR)/../notsystemd-tests PATH := $(osi_tools):$(PATH) all: $(patsubst %.sh,%.rootfs.img,$(wildcard images/*.sh)) .PHONY: all .SECONDARY: .DELETE_ON_ERROR: # Nothing here is parallel-unsafe, but it just makes the output (and # especially `sudo` prompts) hard to read. .NOTPARALLEL: define NL endef # Dependency magic ############################################################# # Files that modules depend on build-deps/modules/umorpha-bootstrap.sh = bin/umorpha-install build-deps/modules/umorpha-bootstrap.sh += bin/umorpha-mount secret-deps/modules/service-gitea.sh = secrets/gitea-infomaniak-clientid.txt secret-deps/modules/service-gitea.sh += secrets/gitea-infomaniak-clientsecret.txt # Group that should own the secret group/gitea-infomaniak-clientid.txt = gitea group/gitea-infomaniak-clientsecret.txt = gitea # Automatic dependencies deps.mk: images $(wildcard images/*.sh) grep -H -o -e '--module=\S*' -e '--package-file=\S*' -- images/*.sh | sed -E 's,images/([^:]*).sh:--(module|package-file)=(.*),images/\1.rootfs.img: \3 $$(build-deps/\3)\nimages/\1.secrets.sh: $$(secret-deps/\3),' >$@ -include deps.mk # Generic pattern rules ######################################################## images/%.rootfs.img: images/%.sh rm -f $@ $< $@ chmod 444 $@ images/%.gpt.img: images/%.rootfs.img bin/umorpha-install rm -f $@ truncate --size=3G $@ sudo bin/umorpha-install images/$*.rootfs.img $@ images/%.bootstrap.iso: images/%.rootfs.img images/bootstrap.rootfs.img bin/mkbootstrapiso bin/mkbootstrapiso $< $@ images/%.secrets.sh: { \ echo '#!/bin/sh'; \ echo 'install -m755 -d /etc/umorpha-secrets'; \ $(foreach f,$(sort $^),val=$$(cat $f); echo "install -m640 --group=$(group/$(notdir $f)) /dev/stdin /etc/umorpha-secrets/$(notdir $f) <<<$${val@Q}"; \$(NL) ) \ } >$@ pkg/%.pkg.tar.zst: pkg/%/PKGBUILD cd $($@ modules/service-bookstack.sh: modules/service-bookstack.sh.in modules/service-bookstack.sh: secrets/bookstack-app-key.txt modules/service-bookstack.sh: secrets/bookstack-mariadb.txt modules/service-bookstack.sh: secrets/bookstack-infomaniak-mailpassword.txt modules/service-bookstack.sh: secrets/bookstack-infomaniak-clientid.txt modules/service-bookstack.sh: secrets/bookstack-infomaniak-clientsecret.txt sed \ -e "s,@APP_KEY@,$$(cat secrets/bookstack-app-key.txt),g" \ -e "s,@DB_PASSWORD@,$$(cat secrets/bookstack-mariadb.txt),g" \ -e "s,@MAIL_PASSWORD@,$$(cat secrets/bookstack-infomaniak-mailpassword.txt),g" \ -e "s,@CLIENT_ID@,$$(cat secrets/bookstack-infomaniak-clientid.txt),g" \ -e "s,@CLIENT_SECRET@,$$(cat secrets/bookstack-infomaniak-clientsecret.txt),g" \ $@