(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:currentVersion) op: assign_op.Equal rhs: {(DQ (1.11.1))} spids: [7] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:configuredClient) op: assign_op.Equal rhs: {(DQ )} spids: [12] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:search) op: assign_op.Equal rhs: {(DQ (0))} spids: [19] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:insensitive) op: assign_op.Equal rhs: {(DQ )} spids: [24] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:recursive) op: assign_op.Equal rhs: {(DQ )} spids: [28] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:boundry) op: assign_op.Equal rhs: {(DQ )} spids: [32] ) ] ) (command.ShFunction name: getConfiguredClient body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(command)} {(-v)} {(curl)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:55) fd: -1 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:58) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:configuredClient) op: assign_op.Equal rhs: {(DQ (curl))} spids: [63] ) ] ) ] spids: [47 60] ) (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(command)} {(-v)} {(wget)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:77) fd: -1 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:80) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:configuredClient) op: assign_op.Equal rhs: {(DQ (wget))} spids: [85] ) ] ) ] spids: [69 82] ) (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(command)} {(-v)} {(fetch)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:99) fd: -1 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:102) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:configuredClient) op: assign_op.Equal rhs: {(DQ (fetch))} spids: [107] ) ] ) ] spids: [91 104] ) ] else_action: [ (C {(echo)} {(DQ ('Error: This tool reqires either curl, wget, or fetch to be installed.'))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:123) arg_word: {(1)} ) ] ) ] ) ) (command.ShFunction name: httpGet body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$configuredClient'))} arms: [ (case_arm pat_list: [{(curl)}] action: [(C {(curl)} {(-A)} {(curl)} {(-s)} {(DQ ($ Id.VSub_At '$@'))})] spids: [153 154 167 -1] ) (case_arm pat_list: [{(wget)}] action: [(C {(wget)} {(-qO-)} {(DQ ($ Id.VSub_At '$@'))})] spids: [170 171 180 -1] ) (case_arm pat_list: [{(fetch)}] action: [(C {(fetch)} {(-o)} {(DQ (...))})] spids: [183 184 193 -1] ) ] ) ] ) ) (command.ShFunction name: checkInternet body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(echo)} {(-e)} { (DQ ('GET http://google.com HTTP/1.0') (Id.Lit_Other '\\') (n) (Id.Lit_Other '\\') (n) ) } ) (command.Simple words: [{(nc)} {(google.com)} {(80)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:229) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:233) fd: 2 arg_word: {(1)} ) ] ) ] negated: F ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_QMark '$?')} {(-eq)} {(0)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:251) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:259) arg_word: {(0)} ) ] spids: [240 253] ) ] else_action: [ (command.Simple words: [{(echo)} {(DQ ('Error: no active internet connection'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:273) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:280) arg_word: {(1)} ) ] ) ] ) ) (command.ShFunction name: update body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:repositoryName) op: assign_op.Equal rhs: {(DQ (Bash-Snippets))} spids: [309] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:githubUserName) op: assign_op.Equal rhs: {(DQ (alexanderepstein))} spids: [318] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nameOfInstallFile) op: assign_op.Equal rhs: {(DQ (install.sh))} spids: [327] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:latestVersion) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:337) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(httpGet)} {(https) (Id.Lit_Other ':') (//api.github.com/repos/) ($ Id.VSub_DollarName '$githubUserName') (/) ($ Id.VSub_DollarName '$repositoryName') (/tags) } ) (C {(grep)} {(-Eo)} { (SQ (Token id: Id.Lit_Chars val: '"name":.*?[^\\\\]",' span_id: 355 ) ) } ) (C {(head)} {(-1)}) (C {(grep)} {(-Eo)} {(DQ ('[0-9.]+'))}) ] negated: F ) ] ) ) } spids: [336] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$currentVersion')} right: {(DQ )} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$repositoryName')} right: {(DQ )} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$githubUserName')} right: {(DQ )} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$nameOfInstallFile')} right: {(DQ )} ) ) ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:419) ) ] action: [ (command.Simple words: [ {(echo)} {(DQ ('Error: update utility has not been configured correctly.'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:429) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:433) arg_word: {(1)} ) ] spids: [380 420] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$latestVersion')} right: {(DQ )} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:450) ) ] action: [ (command.Simple words: [{(echo)} {(DQ ('Error: no active internet connection'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:460) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:464) arg_word: {(1)} ) ] spids: [438 451] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$latestVersion'))} right: {(DQ ($ Id.VSub_DollarName '$currentVersion'))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:487) ) ] action: [ (C {(echo)} {(DQ ('Version ') ($ Id.VSub_DollarName '$latestVersion') (' available'))} ) (C {(echo)} {(-n)} { (DQ ('Do you wish to update ') ($ Id.VSub_DollarName '$repositoryName') (' [Y/n]: ') ) } ) (C {(read)} {(-r)} {(answer)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$answer'))} right: {(DQ (Y))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$answer'))} right: {(DQ (y))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:547) ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(cd)} { (word_part.TildeSub token: (Token id:Id.Lit_TildeLike val:'~' span_id:553) ) } ) (command.BraceGroup children: [ (command.Sentence child: (C {(echo)} { (SQ (Token id: Id.Lit_Chars val: 'Update Failed' span_id: 562 ) ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:565) ) (command.Sentence child: (command.ControlFlow token: (Token id: Id.ControlFlow_Exit val: exit span_id: 567 ) arg_word: {(1)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:571) ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_d child: {(Id.Lit_TildeLike '~') (/) ($ Id.VSub_DollarName '$repositoryName') } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:587) ) ] action: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(rm)} {(-r)} {(-f)} {($ Id.VSub_DollarName '$repositoryName')} ) (command.BraceGroup children: [ (command.Sentence child: (C {(echo)} { (DQ ( 'Permissions Error: try running the update as sudo' ) ) } ) terminator: (Token id: Id.Op_Semi val: ';' span_id: 608 ) ) (command.Sentence child: (command.ControlFlow token: (Token id: Id.ControlFlow_Exit val: exit span_id: 610 ) arg_word: {(1)} ) terminator: (Token id: Id.Op_Semi val: ';' span_id: 613 ) ) ] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:617) ) ] spids: [576 589] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(git)} {(clone)} { (DQ ('https://github.com/') ($ Id.VSub_DollarName '$githubUserName') (/) ($ Id.VSub_DollarName '$repositoryName') ) } ) (command.BraceGroup children: [ (command.Sentence child: (C {(echo)} {(DQ ("Couldn't download latest version"))}) terminator: (Token id:Id.Op_Semi val:';' span_id:643) ) (command.Sentence child: (command.ControlFlow token: (Token id: Id.ControlFlow_Exit val: exit span_id: 645 ) arg_word: {(1)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:648) ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(cd)} {($ Id.VSub_DollarName '$repositoryName')}) (command.BraceGroup children: [ (command.Sentence child: (C {(echo)} { (SQ (Token id: Id.Lit_Chars val: 'Update Failed' span_id: 664 ) ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:667) ) (command.Sentence child: (command.ControlFlow token: (Token id: Id.ControlFlow_Exit val: exit span_id: 669 ) arg_word: {(1)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:673) ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (command.Simple words: [ {(git)} {(checkout)} {(DQ (v) ($ Id.VSub_DollarName '$latestVersion'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:686) fd: 2 arg_word: {(/dev/null)} ) ] ) (command.Simple words: [ {(git)} {(checkout)} {(DQ ($ Id.VSub_DollarName '$latestVersion'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:700) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(echo)} { (DQ ( "Couldn't git checkout to stable release, updating to latest commit." ) ) } ) ] ) (C {(chmod)} {(a) (Id.Lit_Other '+') (x)} {(install.sh)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(./) ($ Id.VSub_DollarName '$nameOfInstallFile')} {(DQ (update))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:734) arg_word: {(1)} ) ] ) (C {(cd)} {(..)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(rm)} {(-r)} {(-f)} {($ Id.VSub_DollarName '$repositoryName')}) (command.BraceGroup children: [ (command.Sentence child: (C {(echo)} { (DQ ( 'Permissions Error: update succesfull but cannot delete temp files located at ~/' ) ($ Id.VSub_DollarName '$repositoryName') (' delete this directory with sudo') ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:763) ) (command.Sentence child: (command.ControlFlow token: (Token id: Id.ControlFlow_Exit val: exit span_id: 765 ) arg_word: {(1)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:768) ) ] ) ] ) ] spids: [519 548] ) ] else_action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:776) arg_word: {(1)} ) ] ) ] spids: [472 489] ) ] else_action: [ (C {(echo)} { (DQ ($ Id.VSub_DollarName '$repositoryName') (' is already the latest version') ) } ) ] ) ] ) ] ) ) (command.ShFunction name: usage body: (command.BraceGroup children: [ (C {(echo)} {(DQ (Cheat))}) (C {(echo)} { (DQ ( 'Description: Cheatsheets for quick information about multiple programming languages along with terminal commands' ) ) } ) (C {(echo)} { (DQ ( 'Usage: cheat [flags] [command] or cheat [flags] [programming language] [subject]' ) ) } ) (C {(echo)} {(DQ (' -s Does a search for last argument rather than looking for exact match'))} ) (C {(echo)} {(DQ (' -i Case insensitive search'))}) (C {(echo)} {(DQ (' -b Word boundaries in search'))}) (C {(echo)} {(DQ (' -r Recursive search'))}) (C {(echo)} {(DQ (' -u Update Bash-Snippet Tools'))}) (C {(echo)} {(DQ (' -h Show the help'))}) (C {(echo)} {(DQ (' -v Get the tool version'))}) (C {(echo)} {(DQ ('Special Pages:'))}) (C {(echo)} {(DQ (' hello Describes building the hello world program written in the language'))} ) (C {(echo)} { (DQ ( ' list This lists all cheatsheets related to previous arg if none it lists all cheatsheets' ) ) } ) (C {(echo)} { (DQ ( ' learn Shows a learn-x-in-minutes language cheat sheet perfect for getting started with the language' ) ) } ) (C {(echo)} {(DQ (' 1line A collection of one-liners in this language'))}) (C {(echo)} {(DQ (' weirdness A collection of examples of weird things in this language'))}) (C {(echo)} {(DQ ('Examples:'))}) (C {(echo)} {(DQ (' cheat rust hello'))}) (C {(echo)} {(DQ (' cheat -r -b -i go'))}) (C {(echo)} {(DQ (' cheat julia Functions'))}) (C {(echo)} {(DQ (' cheat -i go operators'))}) ] ) ) (command.ShFunction name: getCheatSheet body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Pound '$#')} right: {(1)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:978) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$search')} right: {(DQ (1))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:996) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:link) op: assign_op.Equal rhs: {(cheat.sh/) (Id.Lit_TildeLike '~') ($ Id.VSub_Number '$1')} spids: [1000] ) ] ) ] spids: [983 997] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:link) op: assign_op.Equal rhs: {(cheat.sh/) ($ Id.VSub_Number '$1')} spids: [1009] ) ] ) ] ) ] spids: [967 980] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:link) op: assign_op.Equal rhs: {(cheat.sh/) ($ Id.VSub_Number '$1')} spids: [1020] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Pound '$#')} right: {(2)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1040) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$search')} right: {(DQ (1))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1057) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:link) op: assign_op.PlusEqual rhs: {(/) (Id.Lit_TildeLike '~') ($ Id.VSub_Number '$2')} spids: [1061] ) ] ) ] spids: [1044 1058] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:link) op: assign_op.PlusEqual rhs: {(/) ($ Id.VSub_Number '$2')} spids: [1073] ) ] ) ] ) ] spids: [1029 1041] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$insensitive')} right: {(DQ )} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$recursive')} right: {(DQ )} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$boundry')} right: {(DQ )} ) ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1118) ) ] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:link) op: assign_op.PlusEqual rhs: {(/) ($ Id.VSub_DollarName '$boundry') ($ Id.VSub_DollarName '$insensitive') ($ Id.VSub_DollarName '$recursive') } spids: [1121] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1126) ) ] spids: [1088 1119] ) ] ) (C {(httpGet)} {($ Id.VSub_DollarName '$link')}) ] ) ) (command.ShFunction name: checkSpecialPage body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:temp) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1153] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number '$1')} right: {(DQ (list))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1170) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:temp) op: assign_op.Equal rhs: {(DQ (':list'))} spids: [1174] ) ] ) ] spids: [1157 1171] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number '$1')} right: {(DQ (learn))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1193) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:temp) op: assign_op.Equal rhs: {(DQ (':list'))} spids: [1197] ) ] ) ] spids: [1180 1194] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number '$1')} right: {(DQ (styles))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1216) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:temp) op: assign_op.Equal rhs: {(DQ (':styles'))} spids: [1220] ) ] ) ] spids: [1203 1217] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number '$2')} right: {(DQ (1))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1242) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arg1) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$temp')} spids: [1246] ) ] ) ] spids: [1229 1243] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arg2) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$temp')} spids: [1253] ) ] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(getConfiguredClient)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1266) arg_word: {(1)} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(checkInternet)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1274) arg_word: {(1)} ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:1279) cond: [ (command.Sentence child: (C {(getopts)} {(DQ (ribuvhis))} {(opt)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1288) ) ] body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$opt')} arms: [ (case_arm pat_list: [ { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\?' span_id:1300) ) } ] action: [ (command.Simple words: [{(echo)} {(DQ ('Invalid option: -') ($ Id.VSub_DollarName '$OPTARG'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1311) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1315) arg_word: {(1)} ) ] spids: [1300 1301 1320 -1] ) (case_arm pat_list: [{(h)}] action: [ (C {(usage)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1330) arg_word: {(0)} ) ] spids: [1323 1324 1335 -1] ) (case_arm pat_list: [{(v)}] action: [ (C {(echo)} {(DQ ('Version ') ($ Id.VSub_DollarName '$currentVersion'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1350) arg_word: {(0)} ) ] spids: [1338 1339 1355 -1] ) (case_arm pat_list: [{(u)}] action: [ (C {(update)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1365) arg_word: {(0)} ) ] spids: [1358 1359 1370 -1] ) (case_arm pat_list: [{(i)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:insensitive) op: assign_op.Equal rhs: {(DQ (i))} spids: [1377] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:search) op: assign_op.Equal rhs: {(DQ (1))} spids: [1383] ) ] ) ] spids: [1373 1374 1389 -1] ) (case_arm pat_list: [{(b)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:boundry) op: assign_op.Equal rhs: {(DQ (b))} spids: [1396] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:search) op: assign_op.Equal rhs: {(DQ (1))} spids: [1402] ) ] ) ] spids: [1392 1393 1408 -1] ) (case_arm pat_list: [{(r)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:recursive) op: assign_op.Equal rhs: {(DQ (r))} spids: [1415] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:search) op: assign_op.Equal rhs: {(DQ (1))} spids: [1421] ) ] ) ] spids: [1411 1412 1427 -1] ) (case_arm pat_list: [{(s)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:search) op: assign_op.Equal rhs: {(DQ (1))} spids: [1434] ) ] ) ] spids: [1430 1431 1440 -1] ) (case_arm pat_list: [{(Id.Lit_Other ':')}] action: [ (command.Simple words: [ {(echo)} { (DQ ('Option -') ($ Id.VSub_DollarName '$OPTARG') (' requires an argument.')) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1455) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1459) arg_word: {(1)} ) ] spids: [1443 1444 1464 -1] ) ] ) ] ) ) (command.ForEach iter_name: arg do_arg_iter: T body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$arg')} right: {(DQ (-r))} ) right: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$arg')} right: {(DQ (-s))} ) right: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$arg')} right: {(DQ (-b))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$arg')} right: {(DQ (-i))} ) ) ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1525) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-z)} { (braced_var_sub token: (Token id:Id.VSub_Name val:arg1 span_id:1536) suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(x)}) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1542) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arg1) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$arg')} spids: [1546] ) ] ) ] spids: [1529 1543] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} { (braced_var_sub token: (Token id:Id.VSub_Name val:arg1 span_id:1562) suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(x)}) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1568) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arg2) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$arg')} spids: [1572] ) ] ) ] spids: [1553 1569] ) ] ) ] spids: [1482 1526] ) ] ) ] ) ) (C {(checkSpecialPage)} {($ Id.VSub_DollarName '$arg1')} {(1)}) (C {(checkSpecialPage)} {($ Id.VSub_DollarName '$arg2')} {(2)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Pound '$#')} right: {(0)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1611) ) ] action: [ (C {(usage)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1619) arg_word: {(0)} ) ] spids: [1600 1613] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number '$1')} right: {(DQ (update))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1636) ) ] action: [ (C {(update)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1643) arg_word: {(0)} ) ] spids: [1623 1637] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number '$1')} right: {(DQ (help))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number '$1')} right: {(DQ (':help'))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1670) ) ] action: [ (C {(usage)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1680) arg_word: {(0)} ) ] spids: [1647 1671] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$arg1')} right: {($ Id.VSub_DollarName '$arg2')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1698) ) ] action: [ (C {(getCheatSheet)} {($ Id.VSub_DollarName '$arg1')} {($ Id.VSub_DollarName '$arg2')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1712) arg_word: {(0)} ) ] spids: [1687 1699] ) ] else_action: [ (C {(getCheatSheet)} {($ Id.VSub_DollarName '$arg1')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1725) arg_word: {(0)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1733) arg_word: {(0)} ) ] ) ] )