(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REPO_ROOT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(--show-toplevel)})]) left_token: <Left_CommandSub "$("> spids: [11 17] ) } spids: [10] ) ] spids: [10] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$BOOTSTRAP_METHOD")} right: {(DQ (vagrant))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (FuncDef name: do_on_node body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NODE) op: Equal rhs: {($ VSub_Number "$1")} spids: [46] ) ] spids: [46] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMMAND) op: Equal rhs: {(DQ (${ VSub_Star "*"))} spids: [53] ) ] spids: [53] ) (C {(echo)} {(DQ ("EXECUTING on ") ($ VSub_Name "$NODE"))}) (C {(vagrant)} {(ssh)} {($ VSub_Name "$NODE")} {(-c)} {(DQ ($ VSub_Name "$COMMAND"))}) ] spids: [43] ) spids: [39 42] ) ] spids: [-1 35] ) ] else_action: [(C {(Lit_Other ":")})] spids: [84 93] ) (FuncDef name: check_for_envvars body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED_ENVVAR_CHECK) op: Equal rhs: {(0)} spids: [103] ) ] spids: [103] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REQUIRED_VARS) op: Equal rhs: {(DQ (${ VSub_At "@"))} spids: [107] ) ] spids: [107] ) (ForEach iter_name: ENVVAR iter_words: [ { (BracedVarSub token: <VSub_Name REQUIRED_VARS> bracket_op: (WholeArray op_id:Lit_At) spids: [121 126] ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_z child: { (BracedVarSub token: <VSub_Name ENVVAR> prefix_op: VSub_Bang spids: [138 141] ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ("Environment variable ") ($ VSub_Name "$ENVVAR") (" must be set!") ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {(2)} spids: [157] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FAILED_ENVVAR_CHECK) op: Equal rhs: {(1)} spids: [161] ) ] spids: [161] ) ] spids: [-1 146] ) ] spids: [-1 165] ) ] spids: [129 168] ) spids: [120 127] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name "$FAILED_ENVVAR_CHECK")} right: {(0)} ) ) terminator: <Op_Semi ";"> ) ] action: [(Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">)] spids: [-1 184] ) ] spids: [-1 191] ) ] spids: [100] ) spids: [96 99] ) (FuncDef name: load_configs body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_f child: { (DQ ($ VSub_Name "$REPO_ROOT") (/bootstrap/config/bootstrap_config.sh) ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id: BoolUnary_f child: { (DQ ($ VSub_Name "$REPO_ROOT") (/bootstrap/config/bootstrap_config.sh.overrides) ) } ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ( "Performing one-time move of bootstrap_config.sh to bootstrap_config.sh.overrides..." ) ) } ) (C {(mv)} {($ VSub_Name "$REPO_ROOT") (/bootstrap/config/bootstrap_config.sh)} {($ VSub_Name "$REPO_ROOT") (/bootstrap/config/bootstrap_config.sh.overrides)} ) ] spids: [-1 247] ) ] else_action: [ (SimpleCommand words: [ {(echo)} { (DQ ( "ERROR: both bootstrap_config.sh and bootstrap_config.sh.overrides exist!" ) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[275])] ) (SimpleCommand words: [ {(echo)} { (DQ ( "Please move all overrides to bootstrap_config.sh.overrides and remove bootstrap_config.sh!" ) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[285])] ) (C {(exit)} {(1)}) ] spids: [266 294] ) ] spids: [-1 228] ) ] spids: [-1 297] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOOTSTRAP_CONFIG_DEFAULTS) op: Equal rhs: { (DQ ($ VSub_Name "$REPO_ROOT") (/bootstrap/config/bootstrap_config.sh.defaults)) } spids: [301] ) ] spids: [301] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOOTSTRAP_CONFIG_OVERRIDES) op: Equal rhs: { (DQ ($ VSub_Name "$REPO_ROOT") (/bootstrap/config/bootstrap_config.sh.overrides)) } spids: [308] ) ] spids: [308] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id: BoolUnary_f child: {($ VSub_Name "$BOOTSTRAP_CONFIG_DEFAULTS")} ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ( "Bootstrap configuration defaults are missing! Your repository is corrupt; please restore " ) ($ VSub_Name "$REPO_ROOT") (/bootstrap/config/bootstrap_config.sh.defaults.) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[339])] ) (C {(exit)} {(1)}) ] spids: [-1 328] ) ] spids: [-1 348] ) (C {(source)} {($ VSub_Name "$BOOTSTRAP_CONFIG_DEFAULTS")}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_f child: {($ VSub_Name "$BOOTSTRAP_CONFIG_OVERRIDES")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (C {(source)} {($ VSub_Name "$BOOTSTRAP_CONFIG_OVERRIDES")}) terminator: <Op_Semi ";"> ) ] spids: [-1 367] ) ] spids: [-1 374] ) ] spids: [199] ) spids: [196 199] ) ] )