(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BALLS_LIB) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {($ VSub_Number '$0')})]) left_token: <Left_CommandSub '$('> spids: [4 8] ) (/../lib) } spids: [3] ) ] spids: [3] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BALLS_LIB) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(readlink)} {(-f)} {(DQ ($ VSub_Name '$BALLS_LIB'))})] ) left_token: <Left_CommandSub '$('> spids: [12 20] ) } spids: [11] ) ] spids: [11] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mode) op: Equal rhs: {($ VSub_Number '$1')} spids: [26] ) ] spids: [26] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (While cond: [(Sentence child:(C {(getopts)} {(SQ <'e:C:'>)} {(opt)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Case to_match: {($ VSub_Name '$opt')} arms: [ (case_arm pat_list: [{(C)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BALLS_CONF) op: Equal rhs: {($ VSub_Name '$OPTARG')} spids: [58] ) ] spids: [58] ) ] spids: [54 55 62 -1] ) (case_arm pat_list: [{(e)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BALLS_ENV) op: Equal rhs: {($ VSub_Name '$OPTARG')} spids: [69] ) ] spids: [69] ) ] spids: [65 66 73 -1] ) (case_arm pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\?'>)}] action: [ (C {(echo)} {(DQ ('Usage: ') ($ VSub_Number '$0') (' <mode> [options]'))}) (C {(echo)}) (C {(echo)} {(SQ <'Options:'>)}) (C {(echo)} {(SQ <' -e <env> the server environment, BALLS_ENV'>)}) (C {(echo)} {(SQ <' default: development'>)}) (C {(echo)}) (C {(echo)} {(SQ <' -C <path> path to the balls conf file, BALLS_CONF'>)}) (C {(echo)} {(SQ <' default: ./config/$BALLS_ENV.sh'>)}) ] spids: [76 77 130 -1] ) ] spids: [47 51 133] ) ] spids: [44 135] ) ) (AndOr children: [ (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name '$BALLS_ENV'))})) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:BALLS_ENV) op:Equal rhs:{(development)} spids:[150])] spids: [150] ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name '$BALLS_CONF'))})) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BALLS_CONF) op: Equal rhs: {(./config/) ($ VSub_Name '$BALLS_ENV') (.sh)} spids: [165] ) ] spids: [165] ) ] op_id: Op_DAmp ) (C {(.)} {(DQ ($ VSub_Name '$BALLS_CONF'))}) (C {(.)} {($ VSub_Name '$BALLS_LIB') (/balls.sh)}) (Case to_match: {($ VSub_Name '$mode')} arms: [ (case_arm pat_list: [{(server)}] action: [(C {(balls) (Lit_Other ':') (Lit_Other ':') ($ VSub_Name '$mode')})] spids: [190 191 200 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(echo)} {(DQ (unknown))})] spids: [203 204 214 -1] ) ] spids: [183 187 216] ) ] )