(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:zonedir) op: Equal rhs: {(DQ (/usr/share/zoneinfo))} spids: [24] ) ] spids: [24] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {($ VSub_Name '$zonedir')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (SimpleCommand words: [{(echo)} {(DQ ('No time zone database at ') ($ VSub_Name '$zonedir') (.))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[55])] ) terminator: <Op_Semi ';'> ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 44] ) ] spids: [16777215 64] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Name '$zonedir') (/posix))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:zonedir) op: Equal rhs: {($ VSub_Name '$zonedir') (/posix)} spids: [85] ) ] spids: [85] ) ] spids: [16777215 82] ) ] spids: [16777215 92] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:timezone) op:Equal rhs:{(DQ (UTC))} spids:[112])] spids: [112] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mixedzone) op: Equal rhs: {(DQ (UTC))} spids: [118] ) ] spids: [118] ) ] spids: [16777215 109] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (list))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (Subshell child: (CommandList children: [ (C {(echo)} {(DQ ('All known time zones and regions defined on this system:'))}) (C {(cd)} {($ VSub_Name '$zonedir')}) (Pipeline children: [ (C {(find)} {(-L)} {(Lit_Other '*')} {(-type)} {(f)} {(-print)}) (C {(xargs)} {(-n)} {(2)}) (C {(awk)} {(SQ <'{ printf " %-38s %-38s\\n", $1, $2 }'>)}) ] negated: F ) ] ) spids: [144 190] ) (C {(more)}) ] negated: F ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [123 141] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:region) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {($ VSub_Number '$1')})]) left_token: <Left_CommandSub '$('> spids: [207 211] ) ) } spids: [205] ) ] spids: [205] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:zone) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$1')})]) left_token: <Left_CommandSub '$('> spids: [217 221] ) ) } spids: [215] ) ] spids: [215] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:matchcnt) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {(-L)} {($ VSub_Name '$zonedir')} {(-name)} {($ VSub_Name '$zone')} {(-type)} {(f)} {(-print)} ) (C {(wc)} {(-l)}) (C {(sed)} {(SQ <'s/[^[:digit:]]//g'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [241 273] ) ) } spids: [239] ) ] spids: [239] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$matchcnt'))} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$matchcnt')} {(-gt)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$zone') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' matches more than one possible time zone record.') ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [331] ) ] ) (SimpleCommand words: [ {(echo)} {(DQ ("Please use 'list' to see all known regions and time zones"))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [341] ) ] ) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 319] ) ] spids: [16777215 350] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:match) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(find)} {(-L)} {($ VSub_Name '$zonedir')} {(-name)} {($ VSub_Name '$zone')} {(-type)} {(f)} {(-print)} ) ] ) left_token: <Left_CommandSub '$('> spids: [355 371] ) ) } spids: [353] ) ] spids: [353] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mixedzone) op: Equal rhs: {(DQ ($ VSub_Name '$zone'))} spids: [375] ) ] spids: [375] ) ] spids: [16777215 298] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mixedregion) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} { (BracedVarSub token: <VSub_Name region> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: { (BracedVarSub token: <VSub_Name region> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {('?')} ) spids: [400 404] ) } ) spids: [397 405] ) } ) (C {(tr)} {(SQ <'[[:lower:]]'>)} {(SQ <'[[:upper:]]'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [394 420] ) (' ') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} { (BracedVarSub token: <VSub_Name region> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('?')}) spids: [426 430] ) } ) (C {(tr)} {(SQ <'[[:upper:]]'>)} {(SQ <'[[:lower:]]'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [423 443] ) ) } spids: [392] ) ] spids: [392] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mixedzone) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} { (BracedVarSub token: <VSub_Name zone> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: { (BracedVarSub token: <VSub_Name zone> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {('?')} ) spids: [455 459] ) } ) spids: [452 460] ) } ) (C {(tr)} {(SQ <'[[:lower:]]'>)} {(SQ <'[[:upper:]]'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [449 473] ) (' ') (' ') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} { (BracedVarSub token: <VSub_Name zone> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('?')}) spids: [480 484] ) } ) (C {(tr)} {(SQ <'[[:upper:]]'>)} {(SQ <'[[:lower:]]'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [477 497] ) ) } spids: [447] ) ] spids: [447] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$mixedregion'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (.))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:match) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(find)} {(-L)} {($ VSub_Name '$zonedir') (/) ($ VSub_Name '$mixedregion')} {(-type)} {(f)} {(-name)} {($ VSub_Name '$mixedzone')} {(-print)} ) ] ) left_token: <Left_CommandSub '$('> spids: [539 557] ) ) } spids: [537] ) ] spids: [537] ) ] spids: [16777215 522] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:match) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(find)} {(-L)} {($ VSub_Name '$zonedir')} {(-name)} {($ VSub_Name '$mixedzone')} {(-type)} {(f)} {(-print)} ) ] ) left_token: <Left_CommandSub '$('> spids: [566 582] ) ) } spids: [564] ) ] spids: [564] ) ] spids: [561 586] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$match'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} { (CommandSubPart command_list: (CommandList children: [ (C {(find)} {(-L)} {($ VSub_Name '$zonedir')} {(-name)} {($ VSub_Name '$mixedzone')} {(-type)} {(d)} {(-print)} ) ] ) left_token: <Left_CommandSub '$('> spids: [623 639] ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ('The region ') (EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) ($ VSub_Number '$1') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' has more than one time zone. ') ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [658] ) ] ) ] spids: [16777215 645] ) ] else_action: [ (SimpleCommand words: [ {(echo)} { (DQ ("Can't find an exact match for ") (EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) ($ VSub_Number '$1') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('. ') ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [678] ) ] ) ] spids: [662 682] ) (SimpleCommand words: [ {(echo)} {(DQ ("Please use 'list' to see all known regions and time zones."))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[691])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 608] ) ] spids: [16777215 700] ) ] spids: [382 703] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:timezone) op: Equal rhs: {(DQ ($ VSub_Name '$match'))} spids: [706] ) ] spids: [706] ) ] spids: [201 711] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nicetz) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$timezone')}) (C {(sed)} {(DQ ('s|') ($ VSub_Name '$zonedir') ('/||g'))}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [715 729] ) } spids: [714] ) ] spids: [714] ) (C {(echo)} {(It) (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) (s)} { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(date)} {(SQ <'+%A, %B %e, %Y, at %l:%M %p'>)}] more_env: [(env_pair name:TZ val:{($ VSub_Name '$timezone')} spids:[742])] ) ] ) left_token: <Left_CommandSub '$('> spids: [741 750] ) } {(KW_In in)} {($ VSub_Name '$nicetz')} ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )