(CommandList children: [ (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (C {(set)} {(-o)} {(errexit)}) (Assignment keyword: Assign_Readonly pairs: [(assign_pair lhs:(LhsName name:TIMEFORMAT) op:Equal rhs:{(SQ <'%R'>)} spids:[34])] spids: [32] ) (FuncDef name: strace-callback body: (BraceGroup children: [ (Pipeline children: [ (SimpleCommand words: [{(strace)} {(DQ ($ VSub_At '$@'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[107])] ) (C {(wc)} {(-l)}) ] negated: F ) ] spids: [98] ) spids: [94 97] ) (FuncDef name: time-callback body: (BraceGroup children: [ (TimeBlock pipeline: (SimpleCommand words: [{(DQ ($ VSub_At '$@'))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [132] ) ] ) ) ] spids: [123] ) spids: [119 122] ) (FuncDef name: compare body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:callback) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(strace-callback)}) spids: [148 152] ) } spids: [147] ) ] spids: [145] ) (ForEach iter_name: sh iter_words: [{(bash)} {(dash)} {(mksh)} {(zsh)}] do_arg_iter: F body: (DoGroup children: [ (C {(echo)} {($ VSub_Name '$sh')}) (C {($ VSub_Name '$callback')} {($ VSub_Name '$sh')} {(-c)} {(SQ <'echo "hi" > /dev/null'>)} ) (C {(echo)}) ] spids: [175 197] ) spids: [165 173] ) (ForEach iter_name: awk iter_words: [{(gawk)} {(mawk)}] do_arg_iter: F body: (DoGroup children: [ (C {(echo)} {($ VSub_Name '$awk')}) (SimpleCommand words: [ {($ VSub_Name '$callback')} {($ VSub_Name '$awk')} {(SQ <'{ print "hi" } '>)} ] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(/dev/null)} spids: [232] ) ] ) (C {(echo)}) ] spids: [216 240] ) spids: [210 214] ) (If arms: [ (if_arm cond: [(Sentence child:(C {(which)} {(lua)}) terminator:<Op_Semi ';'>)] action: [ (C {(echo)} {(lua)}) (C {($ VSub_Name '$callback')} {(lua)} {(-e)} {(SQ <'print "hi"'>)}) (C {(echo)}) ] spids: [16777215 251] ) ] spids: [16777215 273] ) (C {(echo)} {(perl)}) (C {($ VSub_Name '$callback')} {(perl)} {(-e)} {(SQ <'print "hi\\n"'>)}) (C {(echo)}) (If arms: [ (if_arm cond: [(Sentence child:(C {(which)} {(ruby)}) terminator:<Op_Semi ';'>)] action: [ (C {(echo)} {(ruby)}) (C {($ VSub_Name '$callback')} {(ruby)} {(-e)} {(SQ <'print "hi\\n"'>)}) (C {(echo)}) ] spids: [16777215 308] ) ] spids: [16777215 330] ) (ForEach iter_name: py iter_words: [{(python)} {(python3)}] do_arg_iter: F body: (DoGroup children: [ (C {(echo)} {($ VSub_Name '$py')} {(-S)}) (C {($ VSub_Name '$callback')} {($ VSub_Name '$py')} {(-S)} {(-c)} {(SQ <'print("hi")'>)} ) (C {(echo)}) ] spids: [349 375] ) spids: [343 347] ) (ForEach iter_name: py iter_words: [{(python)} {(python3)}] do_arg_iter: F body: (DoGroup children: [ (C {(echo)} {($ VSub_Name '$py')} {(import)}) (C {($ VSub_Name '$callback')} {($ VSub_Name '$py')} {(-S)} {(-c)} {(SQ <'import json;print("hi")'>)} ) (C {(echo)}) ] spids: [390 416] ) spids: [384 388] ) (ForEach iter_name: py iter_words: [{(python)} {(python3)}] do_arg_iter: F body: (DoGroup children: [ (C {(echo)} {($ VSub_Name '$py')} {(import)}) (C {($ VSub_Name '$callback')} {($ VSub_Name '$py')} {(-S)} {(-c)} {(SQ <'import json;print("hi")'>)} ) (C {(echo)}) ] spids: [431 457] ) spids: [425 429] ) (C {(echo)} {(SQ <'Small app.zip'>)}) (C {($ VSub_Name '$callback')} {(python)} {(-S)} {(_tmp/app.zip)}) (C {(echo)}) (C {(echo)} {(SQ <'hello app bundle'>)}) (AndOr ops: [Op_DPipe] children: [(C {($ VSub_Name '$callback')} {(_bin/hello.ovm)}) (C {(true)})] ) (C {(echo)}) (C {(echo)} {(SQ <'OSH app bundle true'>)}) (C {($ VSub_Name '$callback')} {(_bin/true)}) (C {(echo)}) (C {(echo)} {(SQ <'OSH app bundle Hello World'>)}) (C {($ VSub_Name '$callback')} {(_bin/osh)} {(-c)} {(SQ <'echo hi'>)}) (C {(echo)}) ] spids: [142] ) spids: [138 141] ) (FuncDef name: compare-strace body: (BraceGroup children:[(C {(compare)} {(strace-callback)})] spids:[548]) spids: [544 547] ) (FuncDef name: compare-time body: (BraceGroup children:[(C {(compare)} {(time-callback)})] spids:[562]) spids: [558 561] ) (FuncDef name: import-stats body: (BraceGroup children: [ (C {(echo)} {(json)}) (Pipeline children: [ (SimpleCommand words: [{(strace)} {(python)} {(-c)} {(SQ <'import json'>)}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[598])] ) (C {(grep)} {(json)}) (C {(wc)} {(-l)}) ] negated: F ) (C {(echo)} {(nonexistent___)}) (Pipeline children: [ (SimpleCommand words: [{(strace)} {(python)} {(-c)} {(SQ <'import nonexistent___'>)}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[630])] ) (C {(grep)} {(nonexistent___)}) (C {(wc)} {(-l)}) ] negated: F ) ] spids: [576] ) spids: [572 575] ) (FuncDef name: make-zip body: (BraceGroup children: [ (C {(rm)} {(-r)} {(-f)} {(_tmp/app)}) (C {(rm)} {(-f)} {(_tmp/app.zip)}) (C {(mkdir)} {(-p)} {(_tmp/app)}) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(_tmp/app/lib1.py)} spids: [682] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('print ') (Right_DoubleQuote '"') ('hi from lib1') (Right_DoubleQuote '"') ('\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [686] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(_tmp/app/lib2.py)} spids: [699] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('print ') (Right_DoubleQuote '"') ('hi from lib2') (Right_DoubleQuote '"') ('\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [703] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(_tmp/app/__main__.py)} spids: [716] ) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('import sys\n') ('sys.path = [sys.argv[0]]\n') ('import lib1\n') ('import lib2\n') ('print ') (Right_DoubleQuote '"') ('hi from zip') (Right_DoubleQuote '"') ('\n') ) } do_expansion: True here_end: EOF was_filled: T spids: [720] ) ] ) (C {(pushd)} {(_tmp/app)}) (C {(zip)} {(-r)} {(../app.zip)} {(.)}) (C {(popd)}) ] spids: [652] ) spids: [648 651] ) (FuncDef name: test-zip body: (BraceGroup children:[(C {(python)} {(-S)} {(_tmp/app.zip)})] spids:[761]) spids: [757 760] ) (FuncDef name: strace-zip body: (BraceGroup children:[(C {(strace)} {(python)} {(-S)} {(_tmp/app.zip)})] spids:[780]) spids: [776 779] ) (C {(DQ ($ VSub_At '$@'))}) ] )