From 78b1d0d7b85b02b2ba7fe72227f6d62208b23086 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Mon, 8 Aug 2016 22:01:36 +0800 Subject: add gen_grubcfg() to generate GRUB config from entry file --- functions.sh | 8 ++++++++ mkgrubcfg.sh | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100755 mkgrubcfg.sh diff --git a/functions.sh b/functions.sh index 4e97511..8c83cb3 100644 --- a/functions.sh +++ b/functions.sh @@ -34,6 +34,14 @@ process_distro() { ISOMNT="/media/$ISOFILE" } +gen_grubcfg() { + local entry + for entry in "distro/$1/entry"* + do + UUID="$UUID" ISOFILE="$ISOFILE" ./mkgrubcfg.sh "$entry" + done +} + download_iso() { mkdir -p isofiles for url in ${mirrorlist[@]} diff --git a/mkgrubcfg.sh b/mkgrubcfg.sh new file mode 100755 index 0000000..4be770b --- /dev/null +++ b/mkgrubcfg.sh @@ -0,0 +1,37 @@ +# generate GRUB menuentry +# usage: UUID="$UUID" ISOFILE="$ISOFILE" ./mkgrubcfg.sh +# +# variables in entryfile: +# - UUID: the UUID of the partition +# - ISOFILE: the file name of iso +# +# parameters in entry file: +# - TITLE: GRUB menu entry title +# - KERNEL: path to kernel image +# - INITRD: path to initramfs/initrd image +# - OPTION: kernel command line +# - X64: y/n, indicates whether it's 64-bit + +source "$1" + +if [ "$X64" = y ]; then + echo 'if cpuid -l; then' +fi + +cat << EOF +menuentry '$TITLE' { + linux $KERNEL $OPTION +EOF + +for _initrd in "${INITRD[@]}" +do + echo -e "\tinitrd $_initrd" +done + +echo '}' + +if [ "$X64" = y ]; then + echo 'fi' +fi + +echo -- cgit v1.2.3