(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")})
  ]
)