(command.CommandList children: [ (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (C {(set)} {(-o)} {(errexit)}) (command.Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ROOTFS_URL) op: Equal rhs: { (SQ < 'http://dl-cdn.alpinelinux.org/alpine/v3.6/releases/x86_64/alpine-minirootfs-3.6.2-x86_64.tar.gz' > ) } ) ] ) (command.Assignment keyword: Assign_Readonly pairs: [(assign_pair lhs:(lhs_expr.LhsName name:CHROOT_DIR) op:Equal rhs:{(_chroot/alpine1)})] ) (command.Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:DISTRO_BUILD_CHROOT_DIR) op: Equal rhs: {(_chroot/alpine-distro-build)} ) ] ) (command.FuncDef name: download body: (command.BraceGroup children: [ (C {(wget)} {(--no-clobber)} {(--directory)} {(_tmp)} {($ VSub_DollarName '$ROOTFS_URL')}) ] ) ) (command.FuncDef name: _extract body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$CHROOT_DIR')} ) ) } ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tarball) op: Equal rhs: {(_tmp/) (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(basename)} {($ VSub_DollarName '$ROOTFS_URL')})] ) left_token: <Left_DollarParen '$('> ) } ) ] ) (C {(mkdir)} {(-p)} {($ VSub_DollarName '$dest')}) (command.SimpleCommand words: [ {(tar)} {(--extract)} {(--gzip)} {(--verbose)} {(--directory)} {($ VSub_DollarName '$dest')} ] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_DollarName '$tarball')} ) ] ) ] ) ) (command.FuncDef name: extract body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ VSub_Number '$0')} {(_extract)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] ) ) (command.FuncDef name: extract-distro-build body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ VSub_Number '$0')} {(_extract)} {($ VSub_DollarName '$DISTRO_BUILD_CHROOT_DIR')} ) terminator: <Op_Semi ';'> ) ] ) ) (command.FuncDef name: chmod-chroot body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$CHROOT_DIR')} ) ) } ) ] ) (C {(sudo)} {(chmod)} {(755)} {($ VSub_DollarName '$dest')}) ] ) ) (command.FuncDef name: _setup-dns body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$CHROOT_DIR')} ) ) } ) ] ) (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$chroot_dir') (/etc/resolv.conf)} ) (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 255 stdin_parts: [('nameserver 8.8.8.8\n') ('nameserver 8.8.4.4\n')] ) ] ) ] ) ) (command.FuncDef name: setup-dns body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ VSub_Number '$0')} {(_setup-dns)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] ) ) (command.FuncDef name: add-oil-build-deps body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$CHROOT_DIR')} ) ) } ) ] ) (command.SimpleCommand words: [{(sudo)} {(chroot)} {($ VSub_DollarName '$chroot_dir')} {(/bin/sh)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 312 stdin_parts: [('apk update\n') ('apk add bash make gcc musl-dev \n')] ) ] ) ] ) ) (command.FuncDef name: add-alpine-sdk body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$DISTRO_BUILD_CHROOT_DIR')} ) ) } ) ] ) (command.SimpleCommand words: [{(sudo)} {(chroot)} {($ VSub_DollarName '$chroot_dir')} {(/bin/sh)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 369 stdin_parts: [('apk update\n') ('apk add bash alpine-sdk\n')] ) ] ) ] ) ) (command.FuncDef name: list-packages body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$DISTRO_BUILD_CHROOT_DIR')} ) ) } ) ] ) (C {(sudo)} {(chroot)} {($ VSub_DollarName '$chroot_dir')} {(apk)} {(info)}) ] ) ) (command.FuncDef name: destroy-chroot body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$CHROOT_DIR')} ) ) } ) ] ) (C {(sudo)} {(rm)} {(-r)} {(-rf)} {($ VSub_DollarName '$chroot_dir')}) ] ) ) (command.FuncDef name: enter-chroot body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$CHROOT_DIR')} ) ) } ) ] ) (C {(shift)}) (C {(sudo)} {(chroot)} {($ VSub_DollarName '$chroot_dir')} {(DQ ($ VSub_At '$@'))}) ] ) ) (command.FuncDef name: interactive body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$CHROOT_DIR')} ) ) } ) ] ) (C {(enter-chroot)} {($ VSub_DollarName '$chroot_dir')} {(/bin/sh)}) ] ) ) (command.Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:OIL_VERSION) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(head)} {(-n)} {(1)} {(oil-version.txt)})] ) left_token: <Left_DollarParen '$('> ) } ) ] ) (command.FuncDef name: _copy-tar body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$CHROOT_DIR')} ) ) } ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 2> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonHyphen arg_word:{(oil)}) ) } ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:version) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 3> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$OIL_VERSION')} ) ) } ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest) op: Equal rhs: {($ VSub_DollarName '$chroot_dir') (/src)} ) ] ) (C {(mkdir)} {(-p)} {($ VSub_DollarName '$dest')}) (C {(cp)} {(-v)} {(_release/) ($ VSub_DollarName '$name') (-) ($ VSub_DollarName '$version') (.tar.gz)} {($ VSub_DollarName '$dest')} ) ] ) ) (command.FuncDef name: copy-tar body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ VSub_Number '$0')} {(_copy-tar)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] ) ) (command.FuncDef name: _test-tar body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$CHROOT_DIR')} ) ) } ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 2> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonHyphen arg_word:{(oil)}) ) } ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:version) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 3> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$OIL_VERSION')} ) ) } ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:target) op: Equal rhs: {(_bin/) (${ VSub_Name name) (.ovm)} ) ] ) (command.SimpleCommand words: [{(enter-chroot)} {(DQ ($ VSub_DollarName '$chroot_dir'))} {(/bin/sh)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 705 stdin_parts: [ ('set -e\n') ('cd src\n') ('tar --extract -z < ') ($ VSub_DollarName '$name') (-) ($ VSub_DollarName '$version') ('.tar.gz\n') ('cd ') ($ VSub_DollarName '$name') (-) ($ VSub_DollarName '$version') ('\n') ('./configure\n') ('time make ') ($ VSub_DollarName '$target') ('\n') ('echo\n') ('echo ') (Right_DoubleQuote '"') ('*** Running ') ($ VSub_DollarName '$target') (Right_DoubleQuote '"') ('\n') ('#PYTHONVERBOSE=9 \n') ($ VSub_DollarName '$target') (' --version\n') ('./install\n') ('echo\n') ('echo ') (Right_DoubleQuote '"') ('*** Running osh') (Right_DoubleQuote '"') ('\n') ('osh --version\n') ('echo status=') ($ VSub_QMark '$?') ('\n') ('echo DONE\n') ] ) ] ) ] ) ) (command.FuncDef name: test-tar body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ VSub_Number '$0')} {(_test-tar)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] ) ) (C {(DQ ($ VSub_At '$@'))}) ] )