(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (C {<export>} {<Id.Lit_VarLike 'BOOTSTRAP_METHOD='> <vagrant>})
    (C {<echo>} {(DQ <' ____   ____ ____   ____ '>)})
    (C {<echo>} {(DQ <'| __ ) / ___|  _ '> <Id.Lit_BadBackslash '\\'> <' / ___|'>)})
    (C {<echo>} {(DQ <'|  _ '> <Id.Lit_BadBackslash '\\'> <'| |   | |_) | |    '>)})
    (C {<echo>} {(DQ <'| |_) | |___|  __/| |___ '>)})
    (C {<echo>} 
      {
        (DQ <'|____/ '> <Id.Lit_BadBackslash '\\'> <'____|_|    '> <Id.Lit_BadBackslash '\\'> <'____|'>)
      }
    )
    (C {<echo>})
    (C {<echo>} {(DQ <'BCPC Vagrant BootstrapV2 0.2'>)})
    (C {<echo>} {(DQ <-------------------------------------------->)})
    (C {<echo>} {(DQ <'Bootstrapping local Vagrant environment...'>)})
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Sentence
              child: (C {<getopts>} {(DQ <v>)} {<opt>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {($ Id.VSub_DollarName '$opt')}
              arms: [(case_arm pat_list:[{<v>}] action:[(C {<set>} {<-x>})] spids:[104 105 113 -1])]
            )
          ]
        )
    )
    (C {<source>} {<'../shared/shared_functions.sh'>})
    (C {<export>} {<Id.Lit_VarLike 'REPO_ROOT='> ($ Id.VSub_DollarName '$REPO_ROOT')})
    (C {<load_configs>})
    (C {<echo>} {(DQ <'Performing preflight environment validation...'>)})
    (C {<source>} {($ Id.VSub_DollarName '$REPO_ROOT') <'/bootstrap/shared/shared_validate_env.sh'>})
    (C {<echo>} {(DQ <'Checking VirtualBox and Vagrant...'>)})
    (C {<source>} {($ Id.VSub_DollarName '$REPO_ROOT') <'/bootstrap/vagrant_scripts/vagrant_test.sh'>})
    (C {<echo>} {(DQ <'Downloading necessary files to local cache...'>)})
    (C {<source>} {($ Id.VSub_DollarName '$REPO_ROOT') <'/bootstrap/shared/shared_prereqs.sh'>})
    (C {<echo>} {(DQ <'Shutting down and unregistering VMs from VirtualBox...'>)})
    (C {($ Id.VSub_DollarName '$REPO_ROOT') <'/bootstrap/vagrant_scripts/vagrant_clean.sh'>})
    (C {<echo>} {(DQ <'Starting local Vagrant cluster...'>)})
    (C {($ Id.VSub_DollarName '$REPO_ROOT') <'/bootstrap/vagrant_scripts/vagrant_create.sh'>})
    (C {<echo>} {(DQ <'Installing and configuring Chef on all nodes...'>)})
    (C {($ Id.VSub_DollarName '$REPO_ROOT') <'/bootstrap/shared/shared_configure_chef.sh'>})
    (C 
      {($ Id.VSub_DollarName '$REPO_ROOT') 
        <'/bootstrap/vagrant_scripts/vagrant_print_useful_info.sh'>
      }
    )
    (C {<echo>} {(DQ <'Finished in '> ($ Id.VSub_DollarName '$SECONDS') <' seconds'>)})
  ]
)