From a04ec2c4b06e84613388ecd7acdd2cc5c69ecb98 Mon Sep 17 00:00:00 2001 From: Lars Karlitski Date: Wed, 5 Jun 2019 17:29:08 +0200 Subject: [PATCH] Add some more stages --- stages/io.weldr.locale | 18 ++++++++++++++++++ stages/io.weldr.noop | 11 +++++++++++ stages/io.weldr.remove-uniqueness | 15 +++++++++++++++ stages/io.weldr.script | 24 ++++++++++++++++++++++++ stages/io.weldr.systemd | 13 +++++++++++++ 5 files changed, 81 insertions(+) create mode 100755 stages/io.weldr.locale create mode 100755 stages/io.weldr.noop create mode 100755 stages/io.weldr.remove-uniqueness create mode 100755 stages/io.weldr.script create mode 100755 stages/io.weldr.systemd diff --git a/stages/io.weldr.locale b/stages/io.weldr.locale new file mode 100755 index 00000000..d03f721b --- /dev/null +++ b/stages/io.weldr.locale @@ -0,0 +1,18 @@ +#!/usr/bin/python3 + +import json +import sys + +def main(tree, language, vc_keymap=None): + with open(f"{tree}/etc/locale.conf", "w") as f: + f.write(f'LANG="{language}"\n') + + if vc_keymap: + with open(f"{tree}/etc/vconsole.conf", "w") as f: + f.write(f'KEYMAP="{vc_keymap}"\n') + f.write(f'FONT="eurlatgr"\n') + +if __name__ == '__main__': + options = json.load(sys.stdin) + sys.exit(main(**options)) + diff --git a/stages/io.weldr.noop b/stages/io.weldr.noop new file mode 100755 index 00000000..52cc6d4e --- /dev/null +++ b/stages/io.weldr.noop @@ -0,0 +1,11 @@ +#!/usr/bin/python3 + +import json +import sys + +def main(tree, **options): + print("Not doing anything with these options:", json.dumps(options)) + +if __name__ == '__main__': + options = json.load(sys.stdin) + sys.exit(main(**options)) diff --git a/stages/io.weldr.remove-uniqueness b/stages/io.weldr.remove-uniqueness new file mode 100755 index 00000000..f3012f5c --- /dev/null +++ b/stages/io.weldr.remove-uniqueness @@ -0,0 +1,15 @@ +#!/usr/bin/python3 + +import contextlib +import json +import os +import sys + +def main(tree): + with contextlib.suppress(FileNotFoundError): + os.unlink(f"{tree}/etc/machine-id") + os.unlink(f"{tree}/var/lib/systemd/random-seed") + +if __name__ == '__main__': + options = json.load(sys.stdin) + sys.exit(main(**options)) diff --git a/stages/io.weldr.script b/stages/io.weldr.script new file mode 100755 index 00000000..3dcb374c --- /dev/null +++ b/stages/io.weldr.script @@ -0,0 +1,24 @@ +#!/usr/bin/python3 + +import atexit +import json +import os +import subprocess +import sys + + +def main(tree, script): + scriptfile = f"{tree}/osbuild-script" + + with open(scriptfile, "w") as f: + f.write(script) + + os.chmod(scriptfile, 0o550) + atexit.register(lambda: os.unlink(scriptfile)) + + return subprocess.run(["chroot", tree, "/osbuild-script"]).returncode + + +if __name__ == '__main__': + options = json.load(sys.stdin) + sys.exit(main(**options)) diff --git a/stages/io.weldr.systemd b/stages/io.weldr.systemd new file mode 100755 index 00000000..458c8dd6 --- /dev/null +++ b/stages/io.weldr.systemd @@ -0,0 +1,13 @@ +#!/usr/bin/python3 + +import json +import os +import subprocess + +def main(tree, enabled_services): + for service in enabled_services: + subprocess.run([f"{tree}/usr/bin/systemctl", "--root", tree, "enable", service], check=True) + +if __name__ == '__main__': + options = json.load(sys.stdin) + sys.exit(main(**options))