From 739ce24c472ffa25db71f00430567c5e5a10b25a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20Karpi=C5=84ski?= Date: Tue, 4 Feb 2020 16:40:05 +0100 Subject: [PATCH] Simple menu --- .gitignore | 2 ++ linux/Makefile | 10 ++++++++-- linux/src/scripts/menu.sh | 14 ++++++++++++++ linux/src/scripts/shell.sh | 4 ++++ 4 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 linux/src/scripts/menu.sh create mode 100644 linux/src/scripts/shell.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..482ade3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +linux/build/ +syslinux/ diff --git a/linux/Makefile b/linux/Makefile index a2fc679..314c887 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -1,18 +1,24 @@ CHROOT_CMD := chroot build/rootfs /bin/bash -c FILES = $(shell find src/ -type f -print | sed -e 's|^src/|build/rootfs/|') +FILES_SRC = $(shell find src/ -type f -print) -all: build/rootfs $(FILES) build/rootfs/initrd.img +all: build/rootfs $(FILES) menu build/rootfs/initrd.img clean: rm -rf build/rootfs +menu: $(FILES) + $(CHROOT_CMD) "apt install dialog" + $(CHROOT_CMD) "chmod +x /scripts/menu.sh" + $(CHROOT_CMD) "usermod -s /scripts/menu.sh root" + build/rootfs/initrd.img: $(FILES) chmod +x build/rootfs/etc/initramfs-tools/scripts/local-top/download.sh $(CHROOT_CMD) "apt update && apt install -y linux-image-4.19.0-6-amd64" $(CHROOT_CMD) "update-initramfs -c -kall" -build/rootfs/%: +$(FILES): $(FILES_SRC) mkdir -p $(@D) cp $(shell echo $@ | sed -e 's|^build/rootfs/|src/|') $@ diff --git a/linux/src/scripts/menu.sh b/linux/src/scripts/menu.sh new file mode 100644 index 0000000..d780986 --- /dev/null +++ b/linux/src/scripts/menu.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +sleep 1 + +dialog --menu " " 10 80 5 \ + recv_fsa "Receive and write fsarchiver's archive (to /dev/sda1)" \ + recv_sfd "Receive and write sfdisk's partition table" \ + shell "Run root shell" 2>/tmp/menu \ + +if [ "$?" != "0" ]; then CHOICE="shell"; else CHOICE=$(cat /tmp/menu); fi + +if ! [ -f "$CHOICE" ]; then CHOICE="shell"; fi + +bash $(dirname "$0")/$CHOICE.sh diff --git a/linux/src/scripts/shell.sh b/linux/src/scripts/shell.sh new file mode 100644 index 0000000..bee44c8 --- /dev/null +++ b/linux/src/scripts/shell.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +clear +bash