(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRC_DIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_CommandSub "$("> spids: [5 7] ) } spids: [4] ) ] spids: [4] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-d)} {(DQ ($ VSub_Name "$SRC_DIR") (/work/overlay/mll_utils))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("The directory ") ($ VSub_Name "$SRC_DIR") ("/work/overlay/mll_utils does not exist. Cannot continue.") ) } ) (C {(exit)} {(1)}) ] spids: [-1 27] ) ] spids: [-1 43] ) (C {(cd)} {(work/overlay/mll_utils)}) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("#!/bin/sh\n") ("\n") ("CURRENT_DIR=") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(pwd)\n") ("PRINT_HELP=false\n") ("\n") ("if [ ") (Right_DoubleQuote "\"") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (1) (Right_DoubleQuote "\"") (" = ") (Right_DoubleQuote "\"") (Right_DoubleQuote "\"") (" -o ") (Right_DoubleQuote "\"") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (1) (Right_DoubleQuote "\"") (" = ") (Right_DoubleQuote "\"") (-h) (Right_DoubleQuote "\"") (" -o ") (Right_DoubleQuote "\"") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (1) (Right_DoubleQuote "\"") (" = ") (Right_DoubleQuote "\"") (--help) (Right_DoubleQuote "\"") (" ] ; then\n") (" PRINT_HELP=true\n") ("fi\n") ("\n") ("# Put more business logic here (if needed).\n") ("\n") ("if [ ") (Right_DoubleQuote "\"") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (PRINT_HELP) (Right_DoubleQuote "\"") (" = ") (Right_DoubleQuote "\"") (true) (Right_DoubleQuote "\"") (" ] ; then\n") (" cat << DEOF\n") ("\n") (" This is the Minimal Linux Live installer. Requires root permissions.\n") ("\n") (" Usage: mll-install DEVICE\n") ("\n") ( " DEVICE The device where Minmal Linux Live will be installed. Specify only\n" ) (" the name, e.g. 'sda'. The installer will automatically convert this\n") ( " to '/dev/sda' and will exit with warning message if the device does\n" ) (" not exist.\n") ("\n") (" mll-install sdb\n") ("\n") (" The above example installs Minimal Linux Live on '/dev/sdb'.\n") ("\n") ("DEOF\n") (" \n") (" exit 0\n") ("fi\n") ("\n") ("if [ ! ") (Right_DoubleQuote "\"") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(id -u)") (Right_DoubleQuote "\"") (" = ") (Right_DoubleQuote "\"") (0) (Right_DoubleQuote "\"") (" ] ; then\n") (" echo ") (Right_DoubleQuote "\"") ("You need root permissions. Use '-h' or '--help' for more information.") (Right_DoubleQuote "\"") ("\n") (" exit 1\n") ("fi\n") ("\n") ("if [ ! -e /dev/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1 ] ; then\n") (" echo ") (Right_DoubleQuote "\"") ("Device '/dev/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1' does not exist. Use '-h' or '--help' for more information.") (Right_DoubleQuote "\"") ("\n") (" exit 1\n") ("fi\n") ("\n") ("cat << DEOF\n") ("\n") (" Minimal Linux Live will be installed on device '/dev/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1'. The device will be \n") (" formatted with Ext2 and all previous data will be lost. Press 'Ctrl + C' to\n") (" exit or any other key to continue.\n") (" \n") ("DEOF\n") ("\n") ("read -n1 -s\n") ("\n") ("umount /dev/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1 2>/dev/null\n") ("sleep 1\n") ("mkfs.ext2 /dev/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1\n") ("mkdir /tmp/mnt/inst\n") ("mount /dev/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1 /tmp/mnt/inst\n") ("sleep 1\n") ("cd /tmp/mnt/device\n") ("cp -r kernel.xz rootfs.xz syslinux.cfg src minimal /tmp/mnt/inst 2>/dev/null\n") ("cat /opt/syslinux/mbr.bin > /dev/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1\n") ("cd /tmp/mnt/inst\n") ("/sbin/extlinux --install .\n") ("cd ..\n") ("umount /dev/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1\n") ("sleep 1\n") ("rmdir /tmp/mnt/inst\n") ("\n") ("cat << DEOF\n") ("\n") (" Installation is now complete. Device '/dev/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1' should be bootable now. Check\n") ( " the above output for any errors. You need to remove the ISO image and restart\n" ) (" the system. Let us hope the installation process worked!!! :)\n") ("\n") ("DEOF\n") ("\n") ("cd ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("CURRENT_DIR\n") ("\n") ) } do_expansion: True here_end: CEOF was_filled: True spids: [60] ) (Redir op_id:Redir_Great fd:-1 arg_word:{(sbin/mll-install)} spids:[64]) ] ) (C {(chmod)} {(Lit_Other "+") (rx)} {(sbin/mll-install)}) (Sentence child: (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-d)} {(DQ ($ VSub_Name "$SRC_DIR") (/work/syslinux))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("The installer depends on Syslinux which is missing. Cannot continue."))} ) (C {(exit)} {(1)}) ] spids: [-1 250] ) ] spids: [-1 263] ) terminator: <Op_Semi ";"> ) (C {(cd)} {($ VSub_Name "$SRC_DIR") (/work/syslinux)}) (C {(cd)} { (CommandSubPart command_list: (CommandList children:[(C {(ls)} {(-d)} {(syslinux-) (Lit_Other "*")})]) left_token: <Left_CommandSub "$("> spids: [274 281] ) } ) (C {(cp)} {(bios/extlinux/extlinux)} {($ VSub_Name "$SRC_DIR") (/work/overlay/mll_utils/sbin)}) (C {(mkdir)} {(-p)} {($ VSub_Name "$SRC_DIR") (/work/overlay/mll_utils/opt/syslinux)}) (C {(cp)} {(bios/mbr/mbr.bin)} {($ VSub_Name "$SRC_DIR") (/work/overlay/mll_utils/opt/syslinux)}) (C {(mkdir)} {(-p)} {($ VSub_Name "$SRC_DIR") (/work/overlay/mll_utils/lib)}) (C {(mkdir)} {(-p)} {($ VSub_Name "$SRC_DIR") (/work/overlay/mll_utils/usr/lib)}) (C {(cp)} {(/lib/ld-linux.so.2)} {($ VSub_Name "$SRC_DIR") (/work/overlay/mll_utils/lib)}) (C {(cp)} {(/lib/i386-linux-gnu/libc.so.6)} {($ VSub_Name "$SRC_DIR") (/work/overlay/mll_utils/usr/lib)} ) (C {(echo)} {(DQ ("Minimal Linux Live installer has been generated."))}) (C {(cd)} {($ VSub_Name "$SRC_DIR")}) ] )