(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") ("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 utility wipes disk partitions or entire disks in secure way by\n") ("  overwriting all sectors with random data. Use the '-h' or '--help' option\n") 
                ("  to print again this information. Requires root permissions.\n") ("\n") ("  Usage: mll-disk-erase DEVICE [loops]\n") ("\n") 
                (
"  DEVICE    The device which will be wiped. Specify only the name, e.g. 'sda'.\n"
                ) ("            The utility will automatically convert this to '/dev/sda' and will\n") 
                ("            exit with warning message if the actual device does not exist.\n") ("\n") ("  loops     How many times to wipe the specified partition or disk. The default\n") 
                (
"            value is 1. Use higher value for multiple wipes in order to ensure\n"
                ) ("            that no one can recover your data.\n") ("\n") ("  mll-disk-erase sdb 8\n") ("\n") 
                ("  The above example wipes '/dev/sdb' 8 times in row.\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") ("NUM_LOOPS=1\n") ("\n") ("if [ ! ") (Right_DoubleQuote "\"") 
                (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (2) (Right_DoubleQuote "\"") (" = ") (Right_DoubleQuote "\"") (Right_DoubleQuote "\"") (" ] ; then\n") 
                ("  NUM_LOOPS=") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("2\n") ("fi\n") ("\n") ("for n in ") 
                (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(seq ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("NUM_LOOPS) ; do\n") ("  echo ") 
                (Right_DoubleQuote "\"") ("  Windows update ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("n of ") 
                (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("NUM_LOOPS is being installed. Please wait...") (Right_DoubleQuote "\"") ("\n") 
                ("  dd if=/dev/urandom of=/dev/") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("1 bs=1024b conv=notrunc > /dev/null 2>") 
                (EscapedLiteralPart token:<Lit_EscapedChar "\\&">) ("1\n") ("done \n") ("\n") ("echo ") (Right_DoubleQuote "\"") ("  All updates have been installed.") 
                (Right_DoubleQuote "\"") ("\n") ("\n")
              )
            }
          do_expansion: True
          here_end: CEOF
          was_filled: True
          spids: [63]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(sbin/mll-disk-erase)} spids:[67])
      ]
    )
    (C {(chmod)} {(Lit_Other "+") (rx)} {(sbin/mll-disk-erase)})
    (C {(echo)} {(DQ ("Utility script 'mll-disk-erase' has been generated."))})
    (C {(cd)} {($ VSub_Name "$SRC_DIR")})
  ]
)