(command.CommandList children: [ (C {(Id.KW_Set set)} {(-o)} {(nounset)}) (C {(Id.KW_Set set)} {(-o)} {(pipefail)}) (C {(Id.KW_Set set)} {(-o)} {(errexit)}) (command.ShFunction name: deps body: (command.BraceGroup children: [(C {(sudo)} {(apt)} {(install)} {(systemtap)} {(systemtap-sdt-dev)})] ) ) (command.ShFunction name: stap-deps body: (command.BraceGroup children:[(C {(sudo)} {(apt)} {(install)} {(libdw-dev)} {(libdw1)})]) ) (command.ShFunction name: download body: (command.BraceGroup children: [ (C {(wget)} {(--no-clobber)} {(--directory)} {(_tmp)} {(https) (Id.Lit_Other ':') (//sourceware.org/systemtap/ftp/releases/systemtap-3.1.tar.gz) } ) ] ) ) (command.ShFunction name: extract body: (command.BraceGroup children: [ (C {(cd)} {(_tmp)}) (command.Simple words: [{(tar)} {(-x)} {(-z)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:155) fd: -1 arg_word: {(systemtap-3.1.tar.gz)} ) ] ) ] ) ) (C {(readonly)} {(Id.Lit_VarLike 'PY36=') (Id.Lit_TildeLike '~') (/src/languages/Python-3.6.1)}) (command.ShFunction name: build-python body: (command.BraceGroup children: [ (C {(pushd)} {($ Id.VSub_DollarName '$PY36')}) (C {(./configure)} {(--with-dtrace)}) (C {(make)} {(-j)} {(7)}) (C {(popd)}) ] ) ) (command.ShFunction name: elf body: (command.BraceGroup children: [ (C {(readelf)} {(-n)} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:216) command_list: (command.CommandList children:[(C {(which)} {(python3)})]) ) } ) (C {(echo)} {(---)}) (C {(readelf)} {(-n)} {($ Id.VSub_DollarName '$PY36') (/python)}) ] ) ) (command.ShFunction name: _demo body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'stp=') (DQ ($ Id.VSub_DollarName '$PY36') (/Lib/test/dtracedata/gc.stp)) } ) (C {(local)} {(Id.Lit_VarLike 'py=') (DQ ($ Id.VSub_DollarName '$PWD') (/test/sh_spec.py))}) (C {(pushd)} {($ Id.VSub_DollarName '$PY36')}) (C {(stap)} {(-v)} {($ Id.VSub_DollarName '$stp')} {(-c)} {(DQ ('./python ') ($ Id.VSub_DollarName '$py'))} ) (C {(popd)}) ] ) ) (command.ShFunction name: demo body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ Id.VSub_Number '$0')} {(_demo)}) terminator: (Token id:Id.Op_Semi val:';' span_id:320) ) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )