From 87dc4c9133acdcefcb9ec9801d53074d8e36dc95 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 10 Nov 2024 18:28:44 +0100 Subject: [PATCH] multi-script support --- configs/debian/bookworm_gnome.json | 4 +++- configs/debian/bookworm_kde.json | 4 +++- configs/debian/bookworm_server.json | 4 +++- configs/scripts/install.sh | 4 ---- configs/ubuntu/noble_gnome.json | 4 +++- configs/ubuntu/noble_kde.json | 4 +++- configs/ubuntu/noble_server.json | 4 +++- main.py | 19 +++++++++++++------ 8 files changed, 31 insertions(+), 16 deletions(-) diff --git a/configs/debian/bookworm_gnome.json b/configs/debian/bookworm_gnome.json index 2893fb0..987fe55 100644 --- a/configs/debian/bookworm_gnome.json +++ b/configs/debian/bookworm_gnome.json @@ -4,6 +4,8 @@ "download_link": "http://deb.debian.org/debian/", "download_name": "bookworm", "packages": "grub-pc linux-image-amd64 task-gnome-desktop", - "script": "configs/scripts/install.sh", + "script": [ + "configs/scripts/install.sh" + ], "package_manager": "apt" } \ No newline at end of file diff --git a/configs/debian/bookworm_kde.json b/configs/debian/bookworm_kde.json index 732dabf..fade86a 100644 --- a/configs/debian/bookworm_kde.json +++ b/configs/debian/bookworm_kde.json @@ -4,6 +4,8 @@ "download_link": "http://deb.debian.org/debian/", "download_name": "bookworm", "packages": "grub-pc linux-image-amd64 task-kde-desktop", - "script": "configs/scripts/install.sh", + "script": [ + "configs/scripts/install.sh" + ], "package_manager": "apt" } \ No newline at end of file diff --git a/configs/debian/bookworm_server.json b/configs/debian/bookworm_server.json index 74d4570..55ce54b 100644 --- a/configs/debian/bookworm_server.json +++ b/configs/debian/bookworm_server.json @@ -4,6 +4,8 @@ "download_link": "http://deb.debian.org/debian/", "download_name": "bookworm", "packages": "nginx grub-pc linux-image-amd64", - "script": "configs/scripts/install.sh", + "script": [ + "configs/scripts/install.sh" + ], "package_manager": "apt" } \ No newline at end of file diff --git a/configs/scripts/install.sh b/configs/scripts/install.sh index 80d4c58..8861656 100755 --- a/configs/scripts/install.sh +++ b/configs/scripts/install.sh @@ -73,7 +73,3 @@ while true; do break fi done - -umount -R /mnt - -reboot diff --git a/configs/ubuntu/noble_gnome.json b/configs/ubuntu/noble_gnome.json index e6853ad..5a8b308 100644 --- a/configs/ubuntu/noble_gnome.json +++ b/configs/ubuntu/noble_gnome.json @@ -4,6 +4,8 @@ "download_link": "https://cdimage.ubuntu.com/ubuntu-base/noble/daily/current/noble-base-amd64.tar.gz", "download_name": "noble-base-amd64.tar.gz", "packages": "grub-pc linux-image-generic ubuntu-desktop", - "script": "configs/scripts/install.sh", + "script": [ + "configs/scripts/install.sh" + ], "package_manager": "apt" } \ No newline at end of file diff --git a/configs/ubuntu/noble_kde.json b/configs/ubuntu/noble_kde.json index f082bc1..ae0224a 100644 --- a/configs/ubuntu/noble_kde.json +++ b/configs/ubuntu/noble_kde.json @@ -4,6 +4,8 @@ "download_link": "https://cdimage.ubuntu.com/ubuntu-base/noble/daily/current/noble-base-amd64.tar.gz", "download_name": "noble-base-amd64.tar.gz", "packages": "grub-pc linux-image-generic kubuntu-desktop", - "script": "configs/scripts/install.sh", + "script": [ + "configs/scripts/install.sh" + ], "package_manager": "apt" } \ No newline at end of file diff --git a/configs/ubuntu/noble_server.json b/configs/ubuntu/noble_server.json index 28e1876..1598c2e 100644 --- a/configs/ubuntu/noble_server.json +++ b/configs/ubuntu/noble_server.json @@ -4,6 +4,8 @@ "download_link": "https://cdimage.ubuntu.com/ubuntu-base/noble/daily/current/noble-base-amd64.tar.gz", "download_name": "noble-base-amd64.tar.gz", "packages": "nginx grub-pc linux-image-generic", - "script": "configs/scripts/install.sh", + "script": [ + "configs/scripts/install.sh" + ], "package_manager": "apt" } \ No newline at end of file diff --git a/main.py b/main.py index 95c5828..42e230a 100755 --- a/main.py +++ b/main.py @@ -71,9 +71,9 @@ def rootfs_creator(filename): # packaging rootfs -def rootfs_package(filename, installer): - infile = f"{filename}.tar.gz" - outfile = f"{filename}.iso" +def rootfs_package(identifier, scripts): + infile = f"{identifier}.tar.gz" + outfile = f"{identifier}.iso" close_chroot() command(f"sudo rm -rf '{chroot}'") @@ -102,9 +102,16 @@ def rootfs_package(filename, installer): close_chroot() command(f"sudo cp '{resources}/grub.cfg' '{chroot}/boot/grub/grub.cfg'") - command(f"sudo cp '{installer}' '{chroot}/root/install.sh'") - command(f"echo './install.sh' | sudo tee -a '{chroot}/root/.profile'") - command(f"echo './install.sh' | sudo tee -a '{chroot}/root/.bashrc'") + for script in scripts: + result = script.split("/")[-1] + command(f"sudo cp '{script}' '{chroot}/root/{result}'") + command(f"echo './{result}' | sudo tee -a '{chroot}/root/.profile'") + command(f"echo './{result}' | sudo tee -a '{chroot}/root/.bashrc'") + + command(f"echo 'umount -R /mnt' | sudo tee -a '{chroot}/root/.profile'") + command(f"echo 'umount -R /mnt' | sudo tee -a '{chroot}/root/.bashrc'") + command(f"echo 'reboot' | sudo tee -a '{chroot}/root/.profile'") + command(f"echo 'reboot' | sudo tee -a '{chroot}/root/.bashrc'") if shutil.which("grub-mkrescue"): command(f"sudo grub-mkrescue -o '{outfile}' '{chroot}'")