(command.CommandList children: [ (command.ShFunction name: die body: (command.BraceGroup children: [ (command.Simple words: [{(echo)} {(DQ ('ERROR: ') ($ Id.VSub_Star '$*'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:18) fd: -1 arg_word: {(/dev/stderr)} ) ] ) (command.Simple words: [{(patch)} {(-p0)} {(make.conf.example)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:29) fd: -1 arg_word: {(make.conf.example.diff)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:34) arg_word: {(1)} ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.LogicalNot child: (bool_expr.Unary op_id:Id.BoolUnary_f child:{(make.conf.example)}) ) right: (bool_expr.LogicalOr left: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(make.conf.example.x86.diff)} ) ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id:Id.BoolUnary_d child:{(../.git)}) ) ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:68) ) ] action: [ (command.Simple words: [{(echo)} {(DQ ('ERROR: current directory is invalid'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:79) fd: -1 arg_word: {(/dev/stderr)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:84) arg_word: {(1)} ) ] spids: [41 70] ) ] ) (command.Simple words: [ {(git)} {(diff)} {(--no-prefix)} {(--relative) (Id.Lit_Equals '=') (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:100) command_list: (command.CommandList children: [ (C {(basename)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:104) command_list: (command.CommandList children:[(C {(pwd)})]) ) ) } ) ] ) ) ) } {(make.conf.example)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:113) fd: -1 arg_word: {(make.conf.example.diff)} ) ] ) (C {(git)} {(checkout)} {(--)} {(make.conf.example)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:archs) op: assign_op.Equal rhs: {(sh_array_literal left:(Token id:Id.Op_LParen val:'(' span_id:127))} spids: [126] ) ] ) (command.ForEach iter_name: x iter_words: [{(make.conf.example.) (Id.Lit_Star '*') (.diff)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:archs) op: assign_op.PlusEqual rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:145) words: [ { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:147) command_list: (command.CommandList children: [ (C {(basename)} { (braced_var_sub token: (Token id:Id.VSub_Name val:x span_id:151) suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Id.Lit_Digits 18)}) ) ) } {(.diff)} ) ] ) ) ) } ] ) } spids: [144] ) ] ) ] ) ) (command.ForEach iter_name: arch iter_words: [ { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:archs span_id:173) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {(echo)} {(DQ ('* Patching ') (${ Id.VSub_Name arch))}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(cp)} {(make.conf.example)} {(make.conf.example.) (${ Id.VSub_Name arch)}) (C {(die)} {(DQ ('copy failed'))}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{(patch)} {(-p0)} {(make.conf.example.) (${ Id.VSub_Name arch)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:221) fd: -1 arg_word: {(make.conf.example.) (${ Id.VSub_Name arch) (.diff)} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:229) fd: -1 arg_word: {(/dev/null)} ) ] ) (C {(die)} {(DQ ('arch-patch failed'))}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{(patch)} {(-p0)} {(make.conf.example.) (${ Id.VSub_Name arch)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:251) fd: -1 arg_word: {(make.conf.example.diff)} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:255) fd: -1 arg_word: {(/dev/null)} ) ] ) (C {(die)} {(DQ ('patch failed'))}) ] ) ] ) ) (C {(echo)} {(DQ ('* Re-patching make.conf.example'))}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{(patch)} {(-p0)} {(make.conf.example)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:282) fd: -1 arg_word: {(make.conf.example.diff)} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:286) fd: -1 arg_word: {(/dev/null)} ) ] ) (C {(die)} {(DQ ('repatch failed'))}) ] ) (command.ForEach iter_name: arch iter_words: [ { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:archs span_id:307) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {(echo)} {(DQ ('* Creating diff for ') (${ Id.VSub_Name arch))}) (command.Simple words: [{(diff)} {(-u)} {(make.conf.example)} {(make.conf.example.) (${ Id.VSub_Name arch)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:339) fd: -1 arg_word: {(make.conf.example.) (${ Id.VSub_Name arch) (.diff)} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(${ Id.VSub_Name KEEP_ARCH_MAKE_CONF_EXAMPLE)} ) ) (C {(rm)} {(-f)} {(make.conf.example.) (${ Id.VSub_Name arch)} {(make.conf.example.) (${ Id.VSub_Name arch) (.orig)} ) ] ) ] ) ) (C {(rm)} {(make.conf.example.diff)}) (C {(echo)} {(DQ (Done))}) ] )