(command.CommandList children: [ (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name srcdir> suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{<.>}) ) } ) (command.CommandList children: [ (command.Sentence child: (C {<.>} {(DQ ($ Id.VSub_DollarName '$srcdir') <'/init.sh'>)}) terminator: <Id.Op_Semi _> ) (C {<path_prepend_>} {(DQ ($ Id.VSub_DollarName '$abs_aux_dir'))} {<.>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmpdir) op: assign_op.Equal rhs: {<vc-cvs>} spids: [77] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:repo) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})) <'/'> ($ Id.VSub_DollarName '$tmpdir') <'/repo'> } spids: [80] ) ] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:fail) op:assign_op.Equal rhs:{<0>} spids:[91])] ) (command.ForEach iter_name: i iter_words: [{<with-cvsu>} {<without>}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$i')} {<Id.Lit_Equals '='>} {<without>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<printf>} {(SQ <'%s\\n'>)} {(SQ <'#!/bin/sh'>)} {(SQ <'exit 1'>)}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<cvsu>})] do_fork: T ) (C {<chmod>} {<a> <Id.Lit_Other '+'> <x>} {<cvsu>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$PATH') } spids: [162] ) ] ) (C {<export>} {<PATH>}) ] spids: [120 131] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ok) op: assign_op.Equal rhs: {<0>} spids: [180] ) ] ) (command.AndOr ops: [ Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp ] children: [ (C {<mkdir>} {($ Id.VSub_DollarName '$tmpdir')}) (C {<cd>} {($ Id.VSub_DollarName '$tmpdir')}) (BraceGroup children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell child: (C {<cvs>} {<-Q>} {<-d>} {(DQ ($ Id.VSub_DollarName '$repo'))} {<init>}) redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) (C {<skip_>} {(DQ <'cvs not found in PATH'>)}) ] ) terminator: <Id.Op_Semi _> ) ] ) (C {<mkdir>} {<w>}) (C {<cd>} {<w>}) (C {<mkdir>} {<d>}) (C {<touch>} {<'d/a'>} {<b>} {<c>}) (C {<cvs>} {<-Q>} {<-d>} {(DQ ($ Id.VSub_DollarName '$repo'))} {<Id.KW_Import import>} {<-m>} {<imp>} {<m>} {<M>} {<M0>} ) (C {<cvs>} {<-Q>} {<-d>} {(DQ ($ Id.VSub_DollarName '$repo'))} {<co>} {<m>}) (C {<cd>} {<m>}) (command.Simple words: [{<printf>} {(SQ <'%s\\n'>)} {<b>} {<c>} {<'d/a'>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<expected>})] do_fork: T ) (command.Pipeline children: [ (C {<vc-list-files>}) (command.Simple words: [{<sort>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<actual>} ) ] do_fork: T ) ] negated: F ) (C {<compare>} {<expected>} {<actual>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ok) op: assign_op.Equal rhs: {<1>} spids: [362] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {($ Id.VSub_DollarName '$ok')} {<Id.Lit_Equals '='>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [376] ) ] ) ] ) ] ) ) (C {<Exit>} {($ Id.VSub_DollarName '$fail')}) ] )