(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] ) ] )