From 17170b74957ab798798ff400538b5b3e02fd01b1 Mon Sep 17 00:00:00 2001 From: Lukas Zapletal Date: Thu, 26 Sep 2024 13:24:18 +0200 Subject: [PATCH] src: update custom firstboot service for bootc --- Makefile | 15 +++++++++++++++ aux/custom-first-boot.service | 11 ++++++++--- src/constants.ts | 6 ++++-- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index b38cc412..31a64f39 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,19 @@ FISTBOOT_SERVICE := $(shell base64 -w0 < aux/custom-first-boot.service) +help: + @cat Makefile + src/constants.ts: aux/custom-first-boot.service sed -i "s/.*FIRST_BOOT_SERVICE_DATA.*/export const FIRST_BOOT_SERVICE_DATA = '$(FISTBOOT_SERVICE)';/" $@ + +.PHONY: prep +prep: src/constants.ts + +.PHONY: install +install: + npm install + +.PHONY: start +start: prep + npm start + diff --git a/aux/custom-first-boot.service b/aux/custom-first-boot.service index 4de1dd08..205464d2 100644 --- a/aux/custom-first-boot.service +++ b/aux/custom-first-boot.service @@ -1,14 +1,19 @@ [Unit] -Description=Run first boot script -ConditionPathExists=/usr/local/sbin/custom-first-boot +Description=Custom first boot script +ConditionFileIsExecutable=/usr/local/sbin/custom-first-boot +ConditionPathExists=!/var/local/.custom-first-boot-done Wants=network-online.target +Wants=osbuild-first-boot.target After=network-online.target After=osbuild-first-boot.service [Service] Type=oneshot ExecStart=/usr/local/sbin/custom-first-boot -ExecStartPost=mv /usr/local/sbin/custom-first-boot /usr/local/sbin/custom-first-boot.done +ExecStartPost=/usr/bin/touch /var/local/.custom-first-boot-done +RemainAfterExit=yes [Install] +WantedBy=basic.target WantedBy=multi-user.target +WantedBy=graphical.target diff --git a/src/constants.ts b/src/constants.ts index 5d3d0979..abee9d10 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -220,8 +220,10 @@ export const EPEL_9_REPO_DEFINITION = { export const DEBOUNCED_SEARCH_WAIT_TIME = 500; export const UNIQUE_VALIDATION_DELAY = 300; -export const FIRST_BOOT_SERVICE_DATA = 'W1VuaXRdCkRlc2NyaXB0aW9uPVJ1biBmaXJzdCBib290IHNjcmlwdApDb25kaXRpb25QYXRoRXhpc3RzPS91c3IvbG9jYWwvc2Jpbi9jdXN0b20tZmlyc3QtYm9vdApXYW50cz1uZXR3b3JrLW9ubGluZS50YXJnZXQKQWZ0ZXI9bmV0d29yay1vbmxpbmUudGFyZ2V0CkFmdGVyPW9zYnVpbGQtZmlyc3QtYm9vdC5zZXJ2aWNlCgpbU2VydmljZV0KVHlwZT1vbmVzaG90CkV4ZWNTdGFydD0vdXNyL2xvY2FsL3NiaW4vY3VzdG9tLWZpcnN0LWJvb3QKRXhlY1N0YXJ0UG9zdD1tdiAvdXNyL2xvY2FsL3NiaW4vY3VzdG9tLWZpcnN0LWJvb3QgL3Vzci9sb2NhbC9zYmluL2N1c3RvbS1maXJzdC1ib290LmRvbmUKCltJbnN0YWxsXQpXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldAo='; - 'W1VuaXRdCkRlc2NyaXB0aW9uPVJ1biBmaXJzdCBib290IHNjcmlwdApDb25kaXRpb25QYXRoRXhpc3RzPS91c3IvbG9jYWwvc2Jpbi9jdXN0b20tZmlyc3QtYm9vdApXYW50cz1uZXR3b3JrLW9ubGluZS50YXJnZXQKQWZ0ZXI9bmV0d29yay1vbmxpbmUudGFyZ2V0CkFmdGVyPW9zYnVpbGQtZmlyc3QtYm9vdC5zZXJ2aWNlCgpbU2VydmljZV0KVHlwZT1vbmVzaG90CkV4ZWNTdGFydD0vdXNyL2xvY2FsL3NiaW4vY3VzdG9tLWZpcnN0LWJvb3QKRXhlY1N0YXJ0UG9zdD1tdiAvdXNyL2xvY2FsL3NiaW4vY3VzdG9tLWZpcnN0LWJvb3QgL3Vzci9sb2NhbC9zYmluL2N1c3RvbS1maXJzdC1ib290LmRvbmUKCltJbnN0YWxsXQpXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldAo='; + +// Use `make` to generate the following line. +// prettier-ignore +export const FIRST_BOOT_SERVICE_DATA = 'W1VuaXRdCkRlc2NyaXB0aW9uPUN1c3RvbSBmaXJzdCBib290IHNjcmlwdApDb25kaXRpb25GaWxlSXNFeGVjdXRhYmxlPS91c3IvbG9jYWwvc2Jpbi9jdXN0b20tZmlyc3QtYm9vdApDb25kaXRpb25GaXJzdEJvb3Q9eWVzCgpXYW50cz1maXJzdC1ib290LWNvbXBsZXRlLnRhcmdldApXYW50cz1uZXR3b3JrLW9ubGluZS50YXJnZXQKV2FudHM9b3NidWlsZC1maXJzdC1ib290LnRhcmdldApCZWZvcmU9Zmlyc3QtYm9vdC1jb21wbGV0ZS50YXJnZXQKQWZ0ZXI9bmV0d29yay1vbmxpbmUudGFyZ2V0CkFmdGVyPW9zYnVpbGQtZmlyc3QtYm9vdC5zZXJ2aWNlCgpbU2VydmljZV0KVHlwZT1vbmVzaG90CkV4ZWNTdGFydD0vdXNyL2xvY2FsL3NiaW4vY3VzdG9tLWZpcnN0LWJvb3QKUmVtYWluQWZ0ZXJFeGl0PXllcwoKW0luc3RhbGxdCldhbnRlZEJ5PWJhc2ljLnRhcmdldApXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldApXYW50ZWRCeT1ncmFwaGljYWwudGFyZ2V0Cg=='; export const FIRST_BOOT_SERVICE = 'custom-first-boot';