(command.CommandList children: [ (C {<source>} {<'./virtualbox_env.sh'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<'./vbox_override.sh'>}) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<source>} {<'./vbox_override.sh'>})] spids: [18 29] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$OSTYPE'))} right: {<msys>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$OSTYPE'))} right: {<cygwin>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIN) op: assign_op.Equal rhs: {<TRUE>} spids: [67] ) ] ) ] spids: [39 64] ) ] ) (C {<set>} {<-x>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<'./proxy_setup.sh'>}) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<.>} {<'./proxy_setup.sh'>})] spids: [78 89] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$CURL'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'CURL is not defined'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] spids: [98 111] ) ] ) (C {<export>} {<Id.Lit_VarLike 'BOOTSTRAP_APT_MIRROR='> (braced_var_sub token: <Id.VSub_Name BOOTSTRAP_APT_MIRROR> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{}) ) } ) (C {<export>} {<Id.Lit_VarLike 'BOOTSTRAP_VM_MEM='> (braced_var_sub token: <Id.VSub_Name BOOTSTRAP_VM_MEM> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<2048>}) ) } ) (C {<export>} {<Id.Lit_VarLike 'BOOTSTRAP_VM_CPUS='> (braced_var_sub token: <Id.VSub_Name BOOTSTRAP_VM_CPUS> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<1>}) ) } ) (C {<export>} {<Id.Lit_VarLike 'BOOTSTRAP_VM_DRIVE_SIZE='> (braced_var_sub token: <Id.VSub_Name BOOTSTRAP_VM_DRIVE_SIZE> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<20480>}) ) } ) (C {<export>} {<Id.Lit_VarLike 'CLUSTER_VM_MEM='> (braced_var_sub token: <Id.VSub_Name CLUSTER_VM_MEM> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<2560>}) ) } ) (C {<export>} {<Id.Lit_VarLike 'CLUSTER_VM_CPUS='> (braced_var_sub token: <Id.VSub_Name CLUSTER_VM_CPUS> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<2>}) ) } ) (C {<export>} {<Id.Lit_VarLike 'CLUSTER_VM_DRIVE_SIZE='> (braced_var_sub token: <Id.VSub_Name CLUSTER_VM_DRIVE_SIZE> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<20480>}) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BASE_DIR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<dirname>} { (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) } ) ) } spids: [195] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VBOX_DIR) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$BASE_DIR') <'/vbox'>)} spids: [209] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {($ Id.VSub_DollarName '$VBOX_DIR')}) terminator: <Id.Op_Semi _> ) (C {<'/bin/pwd'>}) ] ) ) ) } spids: [215] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] ) (command.ShFunction name: vbm_import body: (BraceGroup children: [ (C {<local>} {<-r>} {<Id.Lit_VarLike 'image_name='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<-r>} {<Id.Lit_VarLike 'vm_name='> (DQ ($ Id.VSub_Number '$2'))}) (C {<shift>} {<2>}) (C {(DQ ($ Id.VSub_DollarName '$VBM'))} {<Id.KW_Import import>} {(DQ ($ Id.VSub_DollarName '$image_name'))} {<--vsys>} {<0>} {<--vmname>} {(DQ ($ Id.VSub_DollarName '$vm_name'))} {(DQ ($ Id.VSub_At '$@'))} ) ] ) ) (command.ShFunction name: download_VM_files body: (BraceGroup children: [ (C {<pushd>} {($ Id.VSub_DollarName '$P')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ROM) op: assign_op.Equal rhs: {<gpxe-1.0.1-80861004.rom>} spids: [321] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CACHEDIR) op: assign_op.Equal rhs: {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/bcpc-cache'>} spids: [325] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$ROM')} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$CACHEDIR') <'/'> ($ Id.VSub_DollarName '$ROM') } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName '$CACHEDIR') <'/'> ($ Id.VSub_DollarName '$ROM')} {<.>} ) ] spids: [347 360] ) ] else_action: [ (C {($ Id.VSub_DollarName '$CURL')} {<-o>} {<gpxe-1.0.1-80861004.rom>} { (DQ < 'http://rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/build.php' > ) } {<-H>} {(DQ <'Origin: http://rom-o-matic.net'>)} {<-H>} {(DQ <'Host: rom-o-matic.net'>)} {<-H>} {(DQ <'Content-Type: application/x-www-form-urlencoded'>)} {<-H>} {(DQ <'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'>)} {<-H>} { (DQ < 'Referer: http://rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/build.php' > ) } {<-H>} {(DQ <'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3'>)} {<--data>} { (DQ < 'version=1.0.1&use_flags=1&ofmt=ROM+binary+%28flashable%29+image+%28.rom%29&nic=all-drivers&pci_vendor_code=8086&pci_device_code=1004&PRODUCT_NAME=&PRODUCT_SHORT_NAME=gPXE&CONSOLE_PCBIOS=on&BANNER_TIMEOUT=20&NET_PROTO_IPV4=on&COMCONSOLE=0x3F8&COMSPEED=115200&COMDATA=8&COMPARITY=0&COMSTOP=1&DOWNLOAD_PROTO_TFTP=on&DNS_RESOLVER=on&NMB_RESOLVER=off&IMAGE_ELF=on&IMAGE_NBI=on&IMAGE_MULTIBOOT=on&IMAGE_PXE=on&IMAGE_SCRIPT=on&IMAGE_BZIMAGE=on&IMAGE_COMBOOT=on&AUTOBOOT_CMD=on&NVO_CMD=on&CONFIG_CMD=on&IFMGMT_CMD=on&IWMGMT_CMD=on&ROUTE_CMD=on&IMAGE_CMD=on&DHCP_CMD=on&SANBOOT_CMD=on&LOGIN_CMD=on&embedded_script=&A=Get+Image' > ) } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_d child: {($ Id.VSub_DollarName '$CACHEDIR')} ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$CACHEDIR') <'/'> ($ Id.VSub_DollarName '$ROM') } ) ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName '$ROM')} {($ Id.VSub_DollarName '$CACHEDIR') <'/'> ($ Id.VSub_DollarName '$ROM')} ) ] spids: [433 454] ) ] ) ] spids: [331 344] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ISO) op: assign_op.Equal rhs: {<ubuntu-14.04-mini.iso>} spids: [473] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$ISO')} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$CACHEDIR') <'/'> ($ Id.VSub_DollarName '$ISO') } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName '$CACHEDIR') <'/'> ($ Id.VSub_DollarName '$ISO')} {<.>} ) ] spids: [498 511] ) ] else_action: [ (C {($ Id.VSub_DollarName '$CURL')} {<-o>} {($ Id.VSub_DollarName '$ISO')} {<http> <Id.Lit_Colon ':'> < '//archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/mini.iso' > } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_d child: {($ Id.VSub_DollarName '$CACHEDIR')} ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$CACHEDIR') <'/'> ($ Id.VSub_DollarName '$ISO') } ) ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName '$ISO')} {($ Id.VSub_DollarName '$CACHEDIR')} ) ] spids: [544 565] ) ] ) ] spids: [482 495] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BOX) op: assign_op.Equal rhs: {(SQ <trusty-server-cloudimg-amd64-vagrant-disk1.box>)} spids: [582] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<hash>} {<vagrant>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Vagrant detected - downloading Vagrant box for bcpc-bootstrap VM'>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$BOX')} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$CACHEDIR') <'/'> ($ Id.VSub_DollarName '$BOX') } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName '$CACHEDIR') <'/'> ($ Id.VSub_DollarName '$BOX') } {<.>} ) ] spids: [631 644] ) ] else_action: [ (C {($ Id.VSub_DollarName '$CURL')} {<-o>} {($ Id.VSub_DollarName '$BOX')} {<http> <Id.Lit_Colon ':'> <'//cloud-images.ubuntu.com/vagrant/trusty/current/'> ($ Id.VSub_DollarName '$BOX') } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_d child: {($ Id.VSub_DollarName '$CACHEDIR')} ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName '$CACHEDIR') <'/'> ($ Id.VSub_DollarName '$BOX') } ) ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName '$BOX')} {($ Id.VSub_DollarName '$CACHEDIR')} ) ] spids: [674 695] ) ] ) ] spids: [615 628] ) ] ) ] spids: [593 605] ) ] ) (C {<popd>}) ] ) ) (command.ShFunction name: remove_DHCPservers body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'network_name='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{}) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$network_name'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'vms='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$VBM')} {<list>} {<vms>}) (C {<sed>} {(SQ <'s/^.*{\\([0-9a-f-]*\\)}/\\1/'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'vm_networks='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.ForEach iter_names: [vm] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName '$vms')}]) body: (command.DoGroup children: [ (command.Sentence child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$VBM')} {<showvminfo>} {<--details>} {<--machinereadable>} {($ Id.VSub_DollarName '$vm')} ) (C {<grep>} {<-i>} {(SQ <'^hostonlyadapter[2-9]='>)}) (C {<sed>} {<-e>} {(SQ <'s/^.*=//'>)} {<-e>} {(SQ <'s/"//g'>)} ) ] negated: F ) terminator: <Id.Op_Semi _> ) ] ) ) (C {<sort>} {<-u>}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'existing_nets_reg_ex='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<sed>} {<-e>} {(SQ <'s/^/^/'>)} {<-e>} {(SQ <'/$/$/'>)} {<-e>} {(SQ <'s/ /$|^/g'>)} ] redirects: [ (redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName '$vm_networks'))} ) ] do_fork: T ) ) } ) (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$VBM')} {<list>} {<dhcpservers>}) (C {<grep>} {<-E>} { (DQ <'^NetworkName:'> <Id.Lit_BadBackslash '\\'> <'s+HostInterfaceNetworking'> ) } ) (C {<awk>} {(SQ <'{print $2}'>)}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<-r>} {<network_name>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName '$existing_nets_reg_ex')} ) ) (command.Pipeline children: [ (command.Simple words: [ {<egrep>} {<-q>} {($ Id.VSub_DollarName '$existing_nets_reg_ex')} ] redirects: [ (redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$network_name')} ) ] do_fork: T ) ] negated: T ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (C {<remove_DHCPservers>} {($ Id.VSub_DollarName '$network_name')}) ] ) ) ] negated: F ) ] spids: [757 770] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {($ Id.VSub_DollarName '$VBM')} {<dhcpserver>} {<remove>} {<--netname>} {(DQ ($ Id.VSub_DollarName '$network_name'))} ) (C {<local>} {<Id.Lit_VarLike 'return='> <0>}) (C {<local>} {<Id.Lit_VarLike 'return='> ($ Id.VSub_QMark '$?')}) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName '$return')} ) ] ) ] ) ) (command.ShFunction name: create_bootstrap_VM body: (BraceGroup children: [ (C {<pushd>} {($ Id.VSub_DollarName '$P')}) (C {<remove_DHCPservers>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<hash>} {<vagrant>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Vagrant detected - using Vagrant to initialize bcpc-bootstrap VM'>)} ) (C {<cp>} {<'../Vagrantfile'>} {<.>}) (C {<vagrant>} {<up>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:keyfile) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<vagrant>} {<ssh-config>} {<bootstrap>}) (C {<awk>} { (SQ < '/Host bootstrap/,/^$/{ if ($0 ~ /^ +IdentityFile/) print $2}' > ) } ) ] negated: F ) ) ) } spids: [1089] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(DQ ($ Id.VSub_DollarName '$keyfile'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {(DQ ($ Id.VSub_DollarName '$keyfile'))} {<insecure_private_key>}) ] spids: [1109 1122] ) ] ) ] spids: [1055 1067] ) ] else_action: [ (C {<echo>} {(DQ <'Vagrant not detected - using raw VirtualBox for bcpc-bootstrap'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$WIN'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [i] iterable: (for_iter.Words words: [{<0>} {<1>} {<2>} {<3>} {<4>} {<5>} {<6>} {<7>} {<8>} {<9>}] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C { ($ Id.VSub_DollarName '$VBM' ) } {<list>} {<hostonlyifs>} ) (C {<grep>} {<vboxnet> ($ Id.VSub_DollarName '$i') } ) (C {<cut>} {<-f2>} {<-d> (DQ <' '>)} ) ] negated: F ) ) } ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {($ Id.VSub_DollarName '$VBM')} {<hostonlyif>} {<remove>} {<vboxnet> ($ Id.VSub_DollarName '$i')} ) (C {<true>}) ] ) ] spids: [1197 1236] ) ] ) ] ) ) ] spids: [1147 1160] ) ] else_action: [ (command.ForEach iter_names: [i] iterable: (for_iter.Words words: [{<10>} {<9>} {<8>} {<7>} {<6>} {<5>} {<4>} {<3>} {<2>} {<1>}] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {<i>} right: {<1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IF) op: assign_op.Equal rhs: { (DQ <'VirtualBox Host-Only Ethernet Adapter #'> ($ Id.VSub_DollarName '$i') ) } spids: [1321] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1305 1318] ) ] else_action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IF) op: assign_op.Equal rhs: {(DQ <'VirtualBox Host-Only Ethernet Adapter'>)} spids: [1332] ) ] ) terminator: <Id.Op_Semi _> ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$VBM')} {<list>} {<hostonlyifs>} ) (C {<grep>} { (DQ ($ Id.VSub_DollarName '$IF') ) } ) ] negated: F ) ) } ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName '$VBM')} {<hostonlyif>} {<remove>} {(DQ ($ Id.VSub_DollarName '$IF'))} ) ] spids: [1342 1371] ) ] ) ] ) ) ] ) (C {($ Id.VSub_DollarName '$VBM')} {<hostonlyif>} {<create>}) (C {($ Id.VSub_DollarName '$VBM')} {<hostonlyif>} {<create>}) (C {($ Id.VSub_DollarName '$VBM')} {<hostonlyif>} {<create>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$WIN'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [(C {<remove_DHCPservers>} {<vboxnet0>}) (C {<true>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<remove_DHCPservers>} {<vboxnet1>}) (C {<true>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<remove_DHCPservers>} {<vboxnet2>}) (C {<true>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VBN0) op: assign_op.Equal rhs: {<vboxnet0>} spids: [1474] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VBN1) op: assign_op.Equal rhs: {<vboxnet1>} spids: [1478] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VBN2) op: assign_op.Equal rhs: {<vboxnet2>} spids: [1482] ) ] ) ] spids: [1419 1432] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VBN0) op: assign_op.Equal rhs: {(DQ <'VirtualBox Host-Only Ethernet Adapter'>)} spids: [1493] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VBN1) op: assign_op.Equal rhs: {(DQ <'VirtualBox Host-Only Ethernet Adapter #2'>)} spids: [1499] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VBN2) op: assign_op.Equal rhs: {(DQ <'VirtualBox Host-Only Ethernet Adapter #3'>)} spids: [1505] ) ] ) ] ) (C {($ Id.VSub_DollarName '$VBM')} {<hostonlyif>} {<ipconfig>} {(DQ ($ Id.VSub_DollarName '$VBN0'))} {<--ip>} {<10.0.100.2>} {<--netmask>} {<255.255.255.0>} ) (C {($ Id.VSub_DollarName '$VBM')} {<hostonlyif>} {<ipconfig>} {(DQ ($ Id.VSub_DollarName '$VBN1'))} {<--ip>} {<172.16.100.2>} {<--netmask>} {<255.255.255.0>} ) (C {($ Id.VSub_DollarName '$VBM')} {<hostonlyif>} {<ipconfig>} {(DQ ($ Id.VSub_DollarName '$VBN2'))} {<--ip>} {<192.168.100.2>} {<--netmask>} {<255.255.255.0>} ) (command.ForEach iter_names: [vm] iterable: (for_iter.Words words:[{<bcpc-bootstrap>}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$VBM')} {<list>} {<vms>}) (C {<grep>} { (DQ <'^'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name vm) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARCHIVED_BOOTSTRAP) op: assign_op.Equal rhs: { < '../images/build/virtualbox/bcpc-bootstrap/packer-bcpc-bootstrap_ubuntu-14.04.2-amd64.ova' > } spids: [1638] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ ($ Id.VSub_DollarName '$ARCHIVED_BOOTSTRAP' ) ) } ) right: (bool_expr.Unary op_id: Id.BoolUnary_f child: { (DQ ($ Id.VSub_DollarName '$ARCHIVED_BOOTSTRAP' ) ) } ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<vbm_import>} {(DQ ($ Id.VSub_DollarName '$ARCHIVED_BOOTSTRAP'))} {<bcpc-bootstrap>} ) ] spids: [1643 1664] ) ] else_action: [ (command.ControlFlow token: <Id.ControlFlow_Exit exit> ) (C {($ Id.VSub_DollarName '$VBM')} {<createvm>} {<--name>} {($ Id.VSub_DollarName '$vm')} {<--ostype>} {<Ubuntu_64>} {<--basefolder>} {($ Id.VSub_DollarName '$P')} {<--register>} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--memory>} {($ Id.VSub_DollarName '$BOOTSTRAP_VM_MEM')} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--cpus>} {($ Id.VSub_DollarName '$BOOTSTRAP_VM_CPUS')} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--vram>} {<16>} ) (C {($ Id.VSub_DollarName '$VBM')} {<storagectl>} {($ Id.VSub_DollarName '$vm')} {<--name>} {(DQ <'SATA Controller'>)} {<--add>} {<sata>} ) (C {($ Id.VSub_DollarName '$VBM')} {<storagectl>} {($ Id.VSub_DollarName '$vm')} {<--name>} {(DQ <'IDE Controller'>)} {<--add>} {<ide>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:port) op: assign_op.Equal rhs: {<0>} spids: [1771] ) ] ) (command.ForEach iter_names: [disk] iterable: (for_iter.Words words:[{<a>}]) body: (command.DoGroup children: [ (C {($ Id.VSub_DollarName '$VBM')} {<createhd>} {<--filename>} {($ Id.VSub_DollarName '$P') <'/'> ($ Id.VSub_DollarName '$vm') <'/'> ($ Id.VSub_DollarName '$vm') <-> ($ Id.VSub_DollarName '$disk') <.vdi> } {<--size>} {($ Id.VSub_DollarName '$BOOTSTRAP_VM_DRIVE_SIZE')} ) (C {($ Id.VSub_DollarName '$VBM')} {<storageattach>} {($ Id.VSub_DollarName '$vm')} {<--storagectl>} {(DQ <'SATA Controller'>)} {<--device>} {<0>} {<--port>} {($ Id.VSub_DollarName '$port')} {<--type>} {<hdd>} {<--medium>} {($ Id.VSub_DollarName '$P') <'/'> ($ Id.VSub_DollarName '$vm') <'/'> ($ Id.VSub_DollarName '$vm') <-> ($ Id.VSub_DollarName '$disk') <.vdi> } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:port) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: <Id.Lit_ArithVarLike port> right: {<Id.Lit_Digits 1>} ) ) } spids: [1843] ) ] ) ] ) ) (C {($ Id.VSub_DollarName '$VBM')} {<storageattach>} {($ Id.VSub_DollarName '$vm')} {<--storagectl>} {(DQ <'IDE Controller'>)} {<--device>} {<0>} {<--port>} {<0>} {<--type>} {<dvddrive>} {<--medium>} {($ Id.VSub_DollarName '$ISO')} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--boot1>} {<disk>} ) ] ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--nic1>} {<nat>} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--nic2>} {<hostonly>} {<--hostonlyadapter2>} {(DQ ($ Id.VSub_DollarName '$VBN0'))} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--nic3>} {<hostonly>} {<--hostonlyadapter3>} {(DQ ($ Id.VSub_DollarName '$VBN1'))} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--nic4>} {<hostonly>} {<--hostonlyadapter4>} {(DQ ($ Id.VSub_DollarName '$VBN2'))} ) ] spids: [1593 1618] ) ] ) ] ) ) ] ) (C {<popd>}) ] ) ) (command.ShFunction name: create_cluster_VMs body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:oifs) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$IFS'))} spids: [2002] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: { (single_quoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\n'>] multiline: F ) } spids: [2008] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bootstrap_interfaces) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$VBM')} {<showvminfo>} {<bcpc-bootstrap>} {<--machinereadable>} ) (C {<egrep>} {(SQ <'^hostonlyadapter[0-9]='>)}) (C {<sort>}) (C {<sed>} {<-e>} {(SQ <'s/.*=//'>)} {<-e>} {(SQ <'s/"//g'>)}) ] negated: F ) ) } ] ) } spids: [2014] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$oifs'))} spids: [2051] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VBN0) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name bootstrap_interfaces> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) ) } spids: [2057] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VBN1) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name bootstrap_interfaces> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) ) ) } spids: [2068] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VBN2) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name bootstrap_interfaces> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) ) } spids: [2079] ) ] ) (command.ForEach iter_names: [vm] iterable: (for_iter.Words words:[{<bcpc-vm1>} {<bcpc-vm2>} {<bcpc-vm3>}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$VBM')} {<list>} {<vms>}) (C {<grep>} { (DQ <'^'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name vm) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName '$VBM')} {<createvm>} {<--name>} {($ Id.VSub_DollarName '$vm')} {<--ostype>} {<Ubuntu_64>} {<--basefolder>} {($ Id.VSub_DollarName '$P')} {<--register>} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--memory>} {($ Id.VSub_DollarName '$CLUSTER_VM_MEM')} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--cpus>} {($ Id.VSub_DollarName '$CLUSTER_VM_CPUS')} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--vram>} {<16>} ) (C {($ Id.VSub_DollarName '$VBM')} {<storagectl>} {($ Id.VSub_DollarName '$vm')} {<--name>} {(DQ <'SATA Controller'>)} {<--add>} {<sata>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:port) op: assign_op.Equal rhs: {<0>} spids: [2216] ) ] ) (command.ForEach iter_names: [disk] iterable: (for_iter.Words words:[{<a>} {<b>} {<c>} {<d>} {<e>}]) body: (command.DoGroup children: [ (C {($ Id.VSub_DollarName '$VBM')} {<createhd>} {<--filename>} {($ Id.VSub_DollarName '$P') <'/'> ($ Id.VSub_DollarName '$vm') <'/'> ($ Id.VSub_DollarName '$vm') <-> ($ Id.VSub_DollarName '$disk') <.vdi> } {<--size>} {($ Id.VSub_DollarName '$CLUSTER_VM_DRIVE_SIZE')} ) (C {($ Id.VSub_DollarName '$VBM')} {<storageattach>} {($ Id.VSub_DollarName '$vm')} {<--storagectl>} {(DQ <'SATA Controller'>)} {<--device>} {<0>} {<--port>} {($ Id.VSub_DollarName '$port')} {<--type>} {<hdd>} {<--medium>} {($ Id.VSub_DollarName '$P') <'/'> ($ Id.VSub_DollarName '$vm') <'/'> ($ Id.VSub_DollarName '$vm') <-> ($ Id.VSub_DollarName '$disk') <.vdi> } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:port) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: <Id.Lit_ArithVarLike port> right: {<Id.Lit_Digits 1>} ) ) } spids: [2296] ) ] ) ] ) ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--nic1>} {<hostonly>} {<--hostonlyadapter1>} {(DQ ($ Id.VSub_DollarName '$VBN0'))} {<--nictype1>} {<82543GC>} ) (C {($ Id.VSub_DollarName '$VBM')} {<setextradata>} {($ Id.VSub_DollarName '$vm')} {<'VBoxInternal/Devices/pcbios/0/Config/LanBootRom'>} {($ Id.VSub_DollarName '$P') <'/gpxe-1.0.1-80861004.rom'>} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--nic2>} {<hostonly>} {<--hostonlyadapter2>} {(DQ ($ Id.VSub_DollarName '$VBN1'))} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--nic3>} {<hostonly>} {<--hostonlyadapter3>} {(DQ ($ Id.VSub_DollarName '$VBN2'))} ) (C {($ Id.VSub_DollarName '$VBM')} {<modifyvm>} {($ Id.VSub_DollarName '$vm')} {<--largepages>} {<on>} {<--vtxvpid>} {<on>} {<--hwvirtex>} {<on>} {<--nestedpaging>} {<on>} {<--ioapic>} {<off>} ) ] spids: [2115 2140] ) ] ) ] ) ) ] ) ) (command.ShFunction name: install_cluster body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:environment) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<Test-Laptop>}) ) } spids: [2425] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ip) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<10.0.100.3>}) ) } spids: [2432] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<hash>} {<vagrant>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<vagrant>} {<ssh>} {<-c>} { (DQ < 'test -f /etc/default/grub.ucf-dist && sudo mv /etc/default/grub.ucf-dist /etc/default/grub' > ) } ) (C {<true>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$http_proxy'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<vagrant>} {<ssh>} {<-c>} { (DQ < 'grep -z \'^Acquire::http::Proxy \' /etc/apt/apt.conf' > ) } ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<vagrant>} {<ssh>} {<-c>} { (DQ <'echo \'Acquire::http::Proxy '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ($ Id.VSub_DollarName '$http_proxy') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <';\' | sudo tee -a /etc/apt/apt.conf'> ) } ) ] spids: [2510 2525] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_INFO_SH) op: assign_op.Equal rhs: {(DQ <'/home/vagrant/proxy_info.sh'>)} spids: [2551] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<vagrant>} {<ssh>} {<-c>} { (DQ <'test -f '> ($ Id.VSub_DollarName '$PROXY_INFO_SH') ) } ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<vagrant>} {<ssh>} {<-c>} { (DQ <'echo -e \'export http_proxy='> ($ Id.VSub_DollarName '$http_proxy') <Id.Lit_BadBackslash '\\'> <'nexport https_proxy='> ($ Id.VSub_DollarName '$https_proxy') <'\' | sudo tee -a '> ($ Id.VSub_DollarName '$PROXY_INFO_SH') ) } ) ] spids: [2557 2573] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CURLRC) op: assign_op.Equal rhs: {(DQ <'/home/vagrant/.curlrc'>)} spids: [2596] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<vagrant>} {<ssh>} {<-c>} {(DQ <'test -f '> ($ Id.VSub_DollarName '$CURLRC'))} ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<vagrant>} {<ssh>} {<-c>} { (DQ <'echo -e \'proxy = '> ($ Id.VSub_DollarName '$http_proxy') <'\' | sudo tee -a '> ($ Id.VSub_DollarName '$CURLRC') ) } ) ] spids: [2602 2618] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GITCONFIG) op: assign_op.Equal rhs: {(DQ <'/home/vagrant/.gitconfig'>)} spids: [2638] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<vagrant>} {<ssh>} {<-c>} { (DQ <'test -f '> ($ Id.VSub_DollarName '$GITCONFIG') ) } ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<vagrant>} {<ssh>} {<-c>} { (DQ <'echo -e \'[http]'> <Id.Lit_BadBackslash '\\'> <'nproxy = '> ($ Id.VSub_DollarName '$http_proxy') <'\' | sudo tee -a '> ($ Id.VSub_DollarName '$GITCONFIG') ) } ) ] spids: [2644 2660] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CUSTOM_BASE) op: assign_op.Equal rhs: {(DQ <custom>)} spids: [2691] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CUSTOM_CA_DIR) op: assign_op.Equal rhs: { (DQ <'/usr/share/ca-certificates/'> ($ Id.VSub_DollarName '$CUSTOM_BASE') ) } spids: [2697] ) ] ) (command.ForEach iter_names: [CERT] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ls>} {<-1>} {($ Id.VSub_DollarName '$BASE_DIR') <'/cacerts'>} ) ) } ] ) body: (command.DoGroup children: [ (C {<vagrant>} {<ssh>} {<-c>} { (DQ <'sudo mkdir -p '> ($ Id.VSub_DollarName '$CUSTOM_CA_DIR')) } ) (C {<vagrant>} {<ssh>} {<-c>} { (DQ <'if [[ ! -f '> ($ Id.VSub_DollarName '$CUSTOM_CA_DIR') <'/'> ($ Id.VSub_DollarName '$CERT') <' ]]; then sudo cp /chef-bcpc-host/cacerts/'> ($ Id.VSub_DollarName '$CERT') <' '> ($ Id.VSub_DollarName '$CUSTOM_CA_DIR') <'/'> ($ Id.VSub_DollarName '$CERT') <'; fi'> ) } ) (C {<vagrant>} {<ssh>} {<-c>} { (DQ <'echo '> ($ Id.VSub_DollarName '$CUSTOM_BASE') <'/'> ($ Id.VSub_DollarName '$CERT') <' | sudo tee -a /etc/ca-certificates.conf'> ) } ) ] ) ) (C {<vagrant>} {<ssh>} {<-c>} {(DQ <'sudo /usr/sbin/update-ca-certificates'>)}) ] spids: [2494 2507] ) ] ) (C {<echo>} {(DQ <'Bootstrap complete - setting up Chef server'>)}) (C {<echo>} {(DQ <'N.B. This may take approximately 30-45 minutes to complete.'>)}) (C {<'./bootstrap_chef.sh'>} {<--vagrant-remote>} {($ Id.VSub_DollarName '$ip')} {($ Id.VSub_DollarName '$environment')} ) (C {<'./enroll_cobbler.sh'>}) ] spids: [2444 2456] ) ] else_action: [(C {<'./non_vagrant_boot.sh'>})] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) ) } right: {(DQ (${ Id.VSub_Number 0))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<download_VM_files>}) (C {<create_bootstrap_VM>}) (C {<create_cluster_VMs>}) (C {<install_cluster>} {($ Id.VSub_Star '$*')}) ] spids: [2828 2852] ) ] ) ] )