(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gpg_version) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5) command_list: (command.CommandList children: [ (command.Simple words: [{(gpg)} {(--version)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:10) fd: 2 arg_word: {(1)} ) ] ) ] ) ) } spids: [4] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {($ Id.VSub_QMark '$?')} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(127)})] action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$gpg_version'))} arms: [ (case_arm pat_list: [ {(SQ (Token id:Id.Lit_Chars val:'gpg (GnuPG) 1.0.6' span_id:50)) (Id.Lit_Star '*') } ] action: [(C {(say)} {(DQ ('Your version of gpg (1.0.6) is too buggy for testing'))})] spids: [49 53 63 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {(mkdir)} {(./gpghome)}) (C {(chmod)} {(0700)} {(./gpghome)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GNUPGHOME) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:152) command_list: (command.CommandList children:[(C {(pwd)})]) ) (/gpghome) ) } spids: [150] ) ] ) (C {(export)} {(GNUPGHOME)}) (command.Simple words: [ {(gpg)} {(--homedir)} {(DQ (${ Id.VSub_Name GNUPGHOME))} {(--import)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/lib-gpg/keyring.gpg)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:178) fd: 2 arg_word: {(/dev/null)} ) ] ) (command.Simple words: [ {(gpg)} {(--homedir)} {(DQ (${ Id.VSub_Name GNUPGHOME))} {(--import-ownertrust)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/lib-gpg/ownertrust)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:203) fd: 2 arg_word: {(/dev/null)} ) ] ) (command.Simple words: [ {(gpg)} {(--homedir)} {(DQ (${ Id.VSub_Name GNUPGHOME))} {(--sign)} {(-u)} {(committer) (Id.Lit_Splice '@example') (.com)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:228) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:231) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:234) fd: 2 arg_word: {(1)} ) ] ) (C {(test_set_prereq)} {(GPG)}) ] ) ] spids: [66 67 255 -1] ) ] ) ] spids: [14 25] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test_have_prereq)} {(GPG)}) (command.Pipeline children: [ (C {(echo)}) (command.Simple words: [ {(gpg)} {(--homedir)} {(DQ (${ Id.VSub_Name GNUPGHOME))} {(-b)} {(--rfc1991)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:290) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:293) fd: 2 arg_word: {(1)} ) ] ) ] negated: F ) ] ) ] action: [(C {(test_set_prereq)} {(RFC1991)})] spids: [263 296] ) ] ) (command.ShFunction name: sanitize_pgp body: (command.BraceGroup children: [ (C {(perl)} {(-ne)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:318) (Token id: Id.Lit_Chars val: '\t\t/^-----END PGP/ and $in_pgp = 0;\n' span_id: 319 ) (Token id:Id.Lit_Chars val:'\t\tprint unless $in_pgp;\n' span_id:320) (Token id: Id.Lit_Chars val: '\t\t/^-----BEGIN PGP/ and $in_pgp = 1;\n' span_id: 321 ) (Token id:Id.Lit_Chars val:'\t' span_id:322) ) } ) ] ) ) ] )