(command.CommandList children: [ (command.If arms: [ (if_arm cond: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$NO_CURL'))})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: {(SQ <'skipping test, git built without http support'>)} spids: [107] ) ] ) (C {<test_done>}) ] spids: [94 104] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$NO_EXPAT'))}) (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$LIB_HTTPD_DAV'))}) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: {(SQ <'skipping test, git built without expat support'>)} spids: [141] ) ] ) (C {<test_done>}) ] spids: [118 138] ) ] ) (C {<test_tristate>} {<GIT_TEST_HTTPD>}) (command.If arms: [ (if_arm cond: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$GIT_TEST_HTTPD'))} {<Id.Lit_Equals '='>} {<false>}) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: {(DQ <'Network testing disabled (unset GIT_TEST_HTTPD to enable)'>)} spids: [171] ) ] ) (C {<test_done>}) ] spids: [156 168] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children:[(C {<test_have_prereq>} {<NOT_ROOT>})] negated:T) terminator: <Id.Op_Semi _> ) ] action: [ (C {<test_skip_or_die>} {($ Id.VSub_DollarName '$GIT_TEST_HTTPD')} {(DQ <'Cannot run httpd tests as root'>)} ) ] spids: [182 191] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_PARA) op: assign_op.Equal rhs: {(DQ )} spids: [207] ) ] ) (command.ForEach iter_name: DEFAULT_HTTPD_PATH iter_words: [{(SQ <'/usr/sbin/httpd'>)} {(SQ <'/usr/sbin/apache2'>)}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [(C {<test>} {<-x>} {(DQ ($ Id.VSub_DollarName '$DEFAULT_HTTPD_PATH'))})] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [229 240] ) ] ) ] ) ) (command.ForEach iter_name: DEFAULT_HTTPD_MODULE_PATH iter_words: [ {(SQ <'/usr/libexec/apache2'>)} {(SQ <'/usr/lib/apache2/modules'>)} {(SQ <'/usr/lib64/httpd/modules'>)} {(SQ <'/usr/lib/httpd/modules'>)} ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [(C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName '$DEFAULT_HTTPD_MODULE_PATH'))})] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [282 293] ) ] ) ] ) ) (command.Case to_match: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<uname>}))} arms: [ (case_arm pat_list: [{<Darwin>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_PARA) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$HTTPD_PARA') <' -DDarwin'>)} spids: [317] ) ] ) ] spids: [313 314 324 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIB_HTTPD_PATH) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name LIB_HTTPD_PATH> suffix_op: (suffix_op.Unary op_id: Id.VTest_Hyphen arg_word: {(DQ ($ Id.VSub_DollarName '$DEFAULT_HTTPD_PATH'))} ) ) } spids: [329] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIB_HTTPD_PORT) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name LIB_HTTPD_PORT> suffix_op: (suffix_op.Unary op_id: Id.VTest_Hyphen arg_word: { (braced_var_sub token: <Id.VSub_Name this_test> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<t>}) ) } ) ) } spids: [338] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEST_PATH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) <'/lib-httpd'>} spids: [350] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_ROOT_PATH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$PWD')) <'/httpd'>} spids: [356] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_DOCUMENT_ROOT_PATH) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$HTTPD_ROOT_PATH') <'/www'>} spids: [362] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_VALGRIND) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$GIT_VALGRIND')} spids: [370] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<GIT_VALGRIND>}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_VALGRIND_OPTIONS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$GIT_VALGRIND_OPTIONS')} spids: [378] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<GIT_VALGRIND_OPTIONS>}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_TRACE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$GIT_TRACE')} spids: [386] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<GIT_TRACE>}) ] ) (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [(C {<test>} {<-x>} {(DQ ($ Id.VSub_DollarName '$LIB_HTTPD_PATH'))})] negated: T ) ] action: [ (C {<test_skip_or_die>} {($ Id.VSub_DollarName '$GIT_TEST_HTTPD')} {(DQ <'no web server found at \''> ($ Id.VSub_DollarName '$LIB_HTTPD_PATH') <'\''>)} ) ] spids: [395 407] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_VERSION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$LIB_HTTPD_PATH')} {<-v>}) (C {<sed>} {<-n>} {(SQ <'s/^Server version: Apache\\/\\([0-9]*\\)\\..*$/\\1/p; q'>)} ) ] negated: F ) ) } spids: [423] ) ] ) (command.If arms: [ (if_arm cond: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$HTTPD_VERSION'))})] action: [ (command.If arms: [ (if_arm cond: [(C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$LIB_HTTPD_MODULE_PATH'))})] action: [ (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [ (C {<test>} {($ Id.VSub_DollarName '$HTTPD_VERSION')} {<-ge>} {<2>}) ] negated: T ) ] action: [ (C {<test_skip_or_die>} {($ Id.VSub_DollarName '$GIT_TEST_HTTPD')} {(DQ <'at least Apache version 2 is required'>)} ) ] spids: [470 483] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [ (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName '$DEFAULT_HTTPD_MODULE_PATH'))} ) ] negated: T ) ] action: [ (C {<test_skip_or_die>} {($ Id.VSub_DollarName '$GIT_TEST_HTTPD')} {(DQ <'Apache module directory not found'>)} ) ] spids: [500 513] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIB_HTTPD_MODULE_PATH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$DEFAULT_HTTPD_MODULE_PATH'))} spids: [531] ) ] ) ] spids: [456 467] ) ] ) ] spids: [443 453] ) ] else_action: [ (C {<test_skip_or_die>} {($ Id.VSub_DollarName '$GIT_TEST_HTTPD')} { (DQ <'Could not identify web server at \''> ($ Id.VSub_DollarName '$LIB_HTTPD_PATH') <'\''>) } ) ] ) (command.ShFunction name: install_script body: (BraceGroup children: [ (command.Simple words: [ {<write_script>} {(DQ ($ Id.VSub_DollarName '$HTTPD_ROOT_PATH') <'/'> ($ Id.VSub_Number '$1'))} ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName '$TEST_PATH') <'/'> ($ Id.VSub_Number '$1'))} ) ] do_fork: T ) ] ) ) (command.ShFunction name: prepare_httpd body: (BraceGroup children: [ (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HTTPD_DOCUMENT_ROOT_PATH'))}) (C {<cp>} {(DQ ($ Id.VSub_DollarName '$TEST_PATH')) <'/passwd'>} {(DQ ($ Id.VSub_DollarName '$HTTPD_ROOT_PATH'))} ) (C {<install_script>} {<broken-smart-http.sh>}) (C {<install_script>} {<error.sh>}) (C {<ln>} {<-s>} {(DQ ($ Id.VSub_DollarName '$LIB_HTTPD_MODULE_PATH'))} {(DQ ($ Id.VSub_DollarName '$HTTPD_ROOT_PATH') <'/modules'>)} ) (command.If arms: [ (if_arm cond: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$LIB_HTTPD_SSL'))})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_PROTO) op: assign_op.Equal rhs: {<https>} spids: [651] ) ] ) (command.Simple words: [ {<openssl>} {<req>} {<-config>} {(DQ ($ Id.VSub_DollarName '$TEST_PATH') <'/ssl.cnf'>)} {<-new>} {<-x509>} {<-nodes>} {<-out>} {(DQ ($ Id.VSub_DollarName '$HTTPD_ROOT_PATH') <'/httpd.pem'>)} {<-keyout>} {(DQ ($ Id.VSub_DollarName '$HTTPD_ROOT_PATH') <'/httpd.pem'>)} ] more_env: [ (env_pair name: RANDFILE_PATH val: {(DQ ($ Id.VSub_DollarName '$HTTPD_ROOT_PATH')) <'/.rnd'>} spids: [656] ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_SSL_NO_VERIFY) op: assign_op.Equal rhs: {<t>} spids: [702] ) ] ) (C {<export>} {<GIT_SSL_NO_VERIFY>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_PARA) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$HTTPD_PARA') <' -DSSL'>)} spids: [711] ) ] ) ] spids: [637 648] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_PROTO) op: assign_op.Equal rhs: {<http>} spids: [721] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_DEST) op: assign_op.Equal rhs: {<127.0.0.1> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$LIB_HTTPD_PORT')} spids: [728] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_URL) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$HTTPD_PROTO') <Id.Lit_Colon ':'> <'//'> ($ Id.VSub_DollarName '$HTTPD_DEST') } spids: [734] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_URL_USER) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$HTTPD_PROTO') <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Other '%'> <40host> <Id.Lit_Other '@'> ($ Id.VSub_DollarName '$HTTPD_DEST') } spids: [741] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_URL_USER_PASS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$HTTPD_PROTO') <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Other '%'> <40host> <Id.Lit_Colon ':'> <Id.KW_Pass pass> <Id.Lit_Other '%'> <40host> <Id.Lit_Other '@'> ($ Id.VSub_DollarName '$HTTPD_DEST') } spids: [751] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$LIB_HTTPD_DAV'))}) (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$LIB_HTTPD_SVN'))}) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_PARA) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$HTTPD_PARA') <' -DDAV'>)} spids: [790] ) ] ) (command.If arms: [ (if_arm cond: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$LIB_HTTPD_SVN'))})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HTTPD_PARA) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$HTTPD_PARA') <' -DSVN'>)} spids: [812] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIB_HTTPD_SVNPATH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$rawsvnrepo'))} spids: [819] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:svnrepo) op: assign_op.Equal rhs: { (DQ <'http://127.0.0.1:'> ($ Id.VSub_DollarName '$LIB_HTTPD_PORT') <'/'> ) } spids: [825] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:svnrepo) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$svnrepo') ($ Id.VSub_DollarName '$LIB_HTTPD_SVN') ) } spids: [833] ) ] ) (C {<export>} {<LIB_HTTPD_SVN>} {<LIB_HTTPD_SVNPATH>}) ] spids: [798 809] ) ] ) ] spids: [766 787] ) ] ) ] ) ) (command.ShFunction name: start_httpd body: (BraceGroup children: [ (command.Simple words: [{<prepare_httpd>}] redirects: [ (redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<3>}) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<4>}) ] do_fork: T ) (C {<trap>} {(SQ <'code=$?; stop_httpd; (exit $code); die'>)} {<EXIT>}) (command.Simple words: [ {(DQ ($ Id.VSub_DollarName '$LIB_HTTPD_PATH'))} {<-d>} {(DQ ($ Id.VSub_DollarName '$HTTPD_ROOT_PATH'))} {<-f>} {(DQ ($ Id.VSub_DollarName '$TEST_PATH') <'/apache.conf'>)} {($ Id.VSub_DollarName '$HTTPD_PARA')} {<-c>} {(DQ <'Listen 127.0.0.1:'> ($ Id.VSub_DollarName '$LIB_HTTPD_PORT'))} {<-k>} {<start>} ] redirects: [ (redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<3>}) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<4>}) ] do_fork: T ) (command.If arms: [ (if_arm cond: [(C {<test>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>})] action: [ (C {<trap>} {(SQ <die>)} {<EXIT>}) (command.Simple words: [{<cat>} {(DQ ($ Id.VSub_DollarName '$HTTPD_ROOT_PATH')) <'/error.log'>}] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<4>} ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<test_skip_or_die>} {($ Id.VSub_DollarName '$GIT_TEST_HTTPD')} {(DQ <'web server setup failed'>)} ) ] spids: [925 936] ) ] ) ] ) ) (command.ShFunction name: stop_httpd body: (BraceGroup children: [ (C {<trap>} {(SQ <die>)} {<EXIT>}) (C {(DQ ($ Id.VSub_DollarName '$LIB_HTTPD_PATH'))} {<-d>} {(DQ ($ Id.VSub_DollarName '$HTTPD_ROOT_PATH'))} {<-f>} {(DQ ($ Id.VSub_DollarName '$TEST_PATH') <'/apache.conf'>)} {($ Id.VSub_DollarName '$HTTPD_PARA')} {<-k>} {<stop>} ) ] ) ) (command.ShFunction name: test_http_push_nonff body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REMOTE_REPO) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1029] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LOCAL_REPO) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [1033] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BRANCH) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [1037] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXPECT_CAS_RESULT) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Number 4> suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<failure>}) ) } spids: [1041] ) ] ) (C {<test_expect_success>} {(SQ <'non-fast-forward push fails'>)} { (SQ <'\n'> <'\t\tcd "$REMOTE_REPO" &&\n'> <'\t\tHEAD=$(git rev-parse --verify HEAD) &&\n'> <'\n'> <'\t\tcd "$LOCAL_REPO" &&\n'> <'\t\tgit checkout $BRANCH &&\n'> <'\t\techo "changed" > path2 &&\n'> <'\t\tgit commit -a -m path2 --amend &&\n'> <'\n'> <'\t\ttest_must_fail git push -v origin >output 2>&1 &&\n'> <'\t\t(cd "$REMOTE_REPO" &&\n'> <'\t\t test $HEAD = $(git rev-parse --verify HEAD))\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'non-fast-forward push show ref status'>)} { (SQ <'\n'> < '\t\tgrep "^ ! \\[rejected\\][ ]*$BRANCH -> $BRANCH (non-fast-forward)$" output\n' > <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'non-fast-forward push shows help message'>)} {(SQ <'\n'> <'\t\ttest_i18ngrep "Updates were rejected because" output\n'> <'\t'>)} ) (C {<test_expect_> (${ Id.VSub_Name EXPECT_CAS_RESULT)} {(SQ <'force with lease aka cas'>)} { (SQ <'\n'> <'\t\tHEAD=$(\tcd "$REMOTE_REPO" && git rev-parse --verify HEAD ) &&\n'> <'\t\ttest_when_finished '> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) (SQ <'\n'> <'\t\t\t(cd "$REMOTE_REPO" && git update-ref HEAD "$HEAD")\n'> <'\t\t'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) (SQ <' &&\n'> <'\t\t(\n'> <'\t\t\tcd "$LOCAL_REPO" &&\n'> <'\t\t\tgit push -v --force-with-lease=$BRANCH:$HEAD origin\n'> <'\t\t) &&\n'> <'\t\tgit rev-parse --verify "$BRANCH" >expect &&\n'> <'\t\t(\n'> <'\t\t\tcd "$REMOTE_REPO" && git rev-parse --verify HEAD\n'> <'\t\t) >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'> ) } ) ] ) ) (command.ShFunction name: setup_askpass_helper body: (BraceGroup children: [ (C {<test_expect_success>} {(SQ <'setup askpass helper'>)} { (SQ <'\n'> <'\t\twrite_script "$TRASH_DIRECTORY/askpass" <<-\\EOF &&\n'> <'\t\techo >>"$TRASH_DIRECTORY/askpass-query" "askpass: $*" &&\n'> <'\t\tcase "$*" in\n'> <'\t\t*Username*)\n'> <'\t\t\twhat=user\n'> <'\t\t\t;;\n'> <'\t\t*Password*)\n'> <'\t\t\twhat=pass\n'> <'\t\t\t;;\n'> <'\t\tesac &&\n'> <'\t\tcat "$TRASH_DIRECTORY/askpass-$what"\n'> <'\t\tEOF\n'> <'\t\tGIT_ASKPASS="$TRASH_DIRECTORY/askpass" &&\n'> <'\t\texport GIT_ASKPASS &&\n'> <'\t\texport TRASH_DIRECTORY\n'> <'\t'> ) } ) ] ) ) (command.ShFunction name: set_askpass body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') <'/askpass-query'>)} ) ] do_fork: F ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') <'/askpass-user'>)} ) ] do_fork: T ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_Number '$2'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') <'/askpass-pass'>)} ) ] do_fork: T ) ] ) ] ) ) (command.ShFunction name: expect_askpass body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dest) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$HTTPD_DEST') (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VTest_Plus arg_word: {<Id.Lit_Slash '/'> ($ Id.VSub_Number '$3')} ) ) } spids: [1229] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (BraceGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<none>}] spids: [1252 1253 1256 -1] ) (case_arm pat_list: [{<Id.KW_Pass pass>}] action: [ (C {<echo>} { (DQ <'askpass: Password for \'http://'> ($ Id.VSub_Number '$2') <'@'> ($ Id.VSub_DollarName '$dest') <'\': '> ) } ) ] spids: [1259 1260 1274 -1] ) (case_arm pat_list: [{<both>}] action: [ (C {<echo>} { (DQ <'askpass: Username for \'http://'> ($ Id.VSub_DollarName '$dest') <'\': '> ) } ) (C {<echo>} { (DQ <'askpass: Password for \'http://'> ($ Id.VSub_Number '$2') <'@'> ($ Id.VSub_DollarName '$dest') <'\': '> ) } ) ] spids: [1277 1278 1301 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<false>})] spids: [1304 1305 1311 -1] ) ] ) ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') <'/askpass-expect'>)} ) ] ) (C {<test_cmp>} {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') <'/askpass-expect'>)} {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') <'/askpass-query'>)} ) ] ) ] ) ) ] )