(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_>} {<ln>}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<mkdir>} {<-p>} {<'usr/bin'>}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<mkdir>} {<-p>} {<'usr/lib/foo'>}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {<'usr/lib/foo/foo'>}) (C {<framework_failure_>})] ) (C {<ln>} {<-sr>} {<'usr/lib/foo/foo'>} {<'usr/bin/foo'>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<readlink>} {<'usr/bin/foo'>}))} {<Id.Lit_Equals '='>} {(SQ <'../lib/foo/foo'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [118] ) ] ) ] ) (C {<ln>} {<-sr>} {<'usr/bin/foo'>} {<'usr/lib/foo/link-to-foo'>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<readlink>} {<'usr/lib/foo/link-to-foo'>}) ) } {<Id.Lit_Equals '='>} {(SQ <foo>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [146] ) ] ) ] ) (C {<ln>} {<-s>} {<'dir1/dir2/f'>} {<existing_link>}) (C {<ln>} {<-srf>} {<here>} {<existing_link>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<readlink>} {<existing_link>}))} {<Id.Lit_Equals '='>} {(SQ <here>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [185] ) ] ) ] ) (C {<ln>} {<-s>} {<release1>} {<alpha>}) (C {<ln>} {<-s>} {<release2>} {<beta>}) (C {<ln>} {<-s>} {<beta>} {<latest>}) (C {<mkdir>} {<web>}) (C {<ln>} {<-sr>} {<latest>} {<'web/latest'>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<readlink>} {<'web/latest'>}))} {<Id.Lit_Equals '='>} {(SQ <'../release2'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [253] ) ] ) ] ) (C {<Exit>} {($ Id.VSub_DollarName '$fail')}) ] )