(CommandList children: [ (FuncDef name: error body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ($ VSub_At '$@'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[98])] ) (C {(exit)} {(1)}) ] spids: [89] ) spids: [85 88] ) (FuncDef name: usage body: (BraceGroup children:[(C {(error)} {(DQ ('usage: vigr [-d dir]'))})] spids:[113]) spids: [109 112] ) (While cond: [(Sentence child:(C {(getopts)} {(d) (Lit_Other ':')} {(opt)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Case to_match: {($ VSub_Name '$opt')} arms: [ (case_arm pat_list: [{(d)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:etcdir) op: Equal rhs: {(DQ (${ VSub_Name OPTARG))} spids: [153] ) ] spids: [153] ) ] spids: [149 150 161 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(usage)})] spids: [164 165 171 16777215] ) ] spids: [142 146 174] ) ] spids: [139 176] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:grpfile) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name etcdir> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(Lit_Slash /) (etc)}) spids: [184 189] ) (/group) ) } spids: [182] ) ] spids: [182] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ (${ VSub_Name grpfile))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(error)} {(DQ ('Missing group file'))})] spids: [16777215 211] ) ] spids: [16777215 220] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tmpdir) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(mktemp)} {(-d)} {(-t)} {(vigr)})]) left_token: <Left_CommandSub '$('> spids: [227 235] ) } spids: [226] ) ] spids: [226] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name tmpdir))} {(-o)} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name tmpdir))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(error)} {(DQ ('Unable to create the temporary directory'))})] spids: [16777215 265] ) ] spids: [16777215 274] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tmpfile) op: Equal rhs: {(DQ (${ VSub_Name tmpdir) (/group))} spids: [276] ) ] spids: [276] ) (C {(trap)} {(DQ ('exit 1'))} {(INT)}) (C {(trap)} {(DQ ("rm -rf '") (${ VSub_Name tmpdir) ("'"))} {(EXIT)}) (C {(set)} {(-e)}) (C {(cp)} {(DQ (${ VSub_Name grpfile))} {(DQ (${ VSub_Name tmpfile))}) (While cond: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (C { (BracedVarSub token: <VSub_Name EDITOR> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (usr) (Lit_Slash /) (bin) (Lit_Slash /) (vi)} ) spids: [343 352] ) } {(DQ (${ VSub_Name tmpfile))} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(chkgrp)} {(-q)} {(DQ (${ VSub_Name tmpfile))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(install)} {(-b)} {(-m)} {(0644)} {(-C)} {(-S)} {(DQ (${ VSub_Name tmpfile))} {(DQ (${ VSub_Name grpfile))} ) (C {(exit)} {(0)}) ] spids: [16777215 380] ) ] spids: [16777215 413] ) (While cond: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (C {(echo)} {(-n)} {(DQ ('Re-edit the group file? '))}) (C {(read)} {(ans)}) (Case to_match: {($ VSub_Name '$ans')} arms: [ (case_arm pat_list: [ {(Lit_Other '[') (Yy) (Lit_Other ']')} {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']') } ] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [450 463 469 16777215] ) (case_arm pat_list: [ {(Lit_Other '[') (Nn) (Lit_Other ']')} {(Lit_Other '[') (Nn) (Lit_Other ']') (Lit_Other '[') (Oo) (Lit_Other ']')} ] action: [(C {(exit)} {(1)})] spids: [472 482 490 16777215] ) ] spids: [443 447 493] ) ] spids: [426 496] ) ) ] spids: [336 498] ) ) ] )