(command.CommandList children: [ (command.CommandList children: [ (command.Sentence child: (C {<.>} { (DQ (braced_var_sub token: <Id.VSub_Name srcdir> suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{<.>}) ) <'/tests/init.sh'> ) } ) terminator: <Id.Op_Semi _> ) (C {<path_prepend_>} {<'./src'>}) ] ) (C {<print_ver_>} {<chgrp>}) (C {<require_membership_in_two_groups_>}) (command.CommandList children: [ (command.Sentence child: (C {<set>} {<Id.Lit_Underscore _>} {($ Id.VSub_DollarName '$groups')}) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:g1) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [77] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:g2) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [80] ) ] ) (C {<mkdir>} {<d>}) (C {<touch>} {<f>} {<f2>} {<'d/f3'>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {($ Id.VSub_DollarName '$g1')} {<f>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [103] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {($ Id.VSub_DollarName '$g2')} {<f>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [114] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {($ Id.VSub_DollarName '$g2')} {<f2>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [125] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {<-R>} {($ Id.VSub_DollarName '$g1')} {<d>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [138] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:d_files) op: assign_op.Equal rhs: {(SQ <'d d/f3'>)} spids: [142] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {($ Id.VSub_DollarName '$g1')} {<f>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [156] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g1')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [180] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {($ Id.VSub_DollarName '$g2')} {<f>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [191] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g2')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [215] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {($ Id.VSub_DollarName '$g2')} {<f>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [226] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g2')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [250] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {(SQ )} {<f>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [262] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g2')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [286] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {($ Id.VSub_DollarName '$g1')} {<f>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [297] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g1')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [321] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {($ Id.VSub_DollarName '$g1')} {<f>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [332] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g1')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [356] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<chgrp>} {<--reference> <Id.Lit_Equals '='> <f2>} {<f>}) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g2')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [388] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {<-R>} {($ Id.VSub_DollarName '$g2')} {<d>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [401] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g> <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName '$d_files')} ) ) } {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$g2') <':'> ($ Id.VSub_DollarName '$g2') <':'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [430] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {<-R>} {($ Id.VSub_DollarName '$g1')} {<d>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [442] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g> <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName '$d_files')} ) ) } {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$g1') <':'> ($ Id.VSub_DollarName '$g1') <':'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [471] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {<-R>} {($ Id.VSub_DollarName '$g2')} {<d>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [483] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g> <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName '$d_files')} ) ) } {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$g2') <':'> ($ Id.VSub_DollarName '$g2') <':'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [512] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {<-R>} {($ Id.VSub_DollarName '$g1')} {<d>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [524] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g> <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName '$d_files')} ) ) } {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$g1') <':'> ($ Id.VSub_DollarName '$g1') <':'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [553] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<chgrp>} {($ Id.VSub_DollarName '$g2')} {<d>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [563] ) ] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--p> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g> <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName '$d_files')} ) ) } {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$g2') <':'> ($ Id.VSub_DollarName '$g1') <':'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [592] ) ] ) ] ) ] ) (C {<rm>} {<-f>} {<f>}) (C {<touch>} {<f>}) (C {<ln>} {<-s>} {<f>} {<symlink>}) (C {<chgrp>} {($ Id.VSub_DollarName '$g1')} {<f>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--printf> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g1')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [639] ) ] ) ] ) (C {<chgrp>} {<-h>} {($ Id.VSub_DollarName '$g2')} {<symlink>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--printf> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g1')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [673] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--printf> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<symlink>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g2')} ) (command.Simple words: [{<echo>} {(SQ <'info: failed to set group of symlink'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<chown>} {<--from> <Id.Lit_Equals '='> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$g1')} {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$g2')} {<f>} ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--printf> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g2')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [745] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<chgrp>} {($ Id.VSub_DollarName '$g1')} {<symlink>}) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--printf> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g1')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [784] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<chown>} {<--from> <Id.Lit_Equals '='> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$g1')} {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$g2')} {<f>} ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--printf> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g2')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [819] ) ] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {<chgrp>} {<-h>} {($ Id.VSub_DollarName '$g1')} {<f>} {<symlink>}) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--printf> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<symlink>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g1')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [856] ) ] ) ] ) ] ) (C {<chgrp>} {<-R>} {($ Id.VSub_DollarName '$g2')} {<symlink>}) (command.CommandList children: [ (command.Sentence child: (C {<chown>} {<--from> <Id.Lit_Equals '='> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$g1')} {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$g2')} {<f>} ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--printf> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g2')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [899] ) ] ) ] ) ] ) (C {<chmod>} {<a-r>} {<f>}) (command.CommandList children: [ (command.Sentence child: (C {<chown>} {<--from> <Id.Lit_Equals '='> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$g2')} {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$g1')} {<f>} ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--printf> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g1')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [944] ) ] ) ] ) ] ) (C {<chmod>} {<0>} {<f>}) (command.CommandList children: [ (command.Sentence child: (C {<chown>} {<--from> <Id.Lit_Equals '='> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$g1')} {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$g2')} {<f>} ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<--printf> <Id.Lit_Equals '='> <Id.Lit_Other '%'> <g>} {<f>}) ) } {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$g2')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [985] ) ] ) ] ) ] ) (C {<rm>} {<-f>} {<f>} {<g>}) (C {<touch>} {<f>} {<g>}) (C {<chgrp>} {($ Id.VSub_DollarName '$g1')} {<f>} {<g>}) (C {<chgrp>} {($ Id.VSub_DollarName '$g2')} {<g>}) (C {<sleep>} {<1>}) (C {<chgrp>} {($ Id.VSub_DollarName '$g1')} {<f>}) (C {<chgrp>} {(SQ )} {<f>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ls>} {<-C>} {<-c>} {<-t>} {<f>} {<g>}) ) ) } {<Id.Lit_Equals '='>} {(SQ <'f g'>)} ) (BraceGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$host_triplet')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <openbsd> <Id.Lit_Star '*'>}] action: [ (command.Simple words: [{<echo>} {<ignoring>} {<known>} {<OpenBSD-specific>} {<chgrp>} {<failure>}] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] spids: [1094 1097 1114 -1] ) (case_arm pat_list: [ {<Id.Lit_Star '*'> <darwin7.9.> <Id.Lit_Star '*'>} {<Id.Lit_Star '*'> <darwin8.> <Id.Lit_Star '*'>} ] action: [ (command.Simple words: [{<echo>} {<ignoring>} {<known>} {<MacOS>} {<X-specific>} {<chgrp>} {<failure>}] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] spids: [1117 1124 1144 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Sentence child: (command.Simple words: [ {<echo>} {($ Id.VSub_DollarName '$host_triplet') <Id.Lit_Colon ':'>} {<no-change>} {<chgrp>} {<failed>} {<to>} {<update>} {<ctime>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [1172] ) ] ) ] spids: [1147 1148 1175 -1] ) ] ) ] ) ] ) (C {<Exit>} {($ Id.VSub_DollarName '$fail')}) ] )