(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 spids:[58]) op: Equal rhs: { (SQ < 'http://dl-cdn.alpinelinux.org/alpine/v3.6/releases/x86_64/alpine-minirootfs-3.6.2-x86_64.tar.gz' > ) } spids: [58] ) ] spids: [56] ) (command.Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CHROOT_DIR spids:[65]) op: Equal rhs: {(_chroot/alpine1)} spids: [65] ) ] spids: [63] ) (command.Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:DISTRO_BUILD_CHROOT_DIR spids:[71]) op: Equal rhs: {(_chroot/alpine-distro-build)} spids: [71] ) ] spids: [69] ) (command.FuncDef name: download body: (command.BraceGroup children: [ (C {(wget)} {(--no-clobber)} {(--directory)} {(_tmp)} {($ VSub_DollarName '$ROOTFS_URL')}) ] spids: [79] ) spids: [75 78] ) (command.FuncDef name: _extract body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[104]) 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')} ) spids: [105 109] ) } spids: [104] ) ] spids: [102] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tarball spids:[115]) op: Equal rhs: {(_tmp/) (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(basename)} {($ VSub_DollarName '$ROOTFS_URL')})] ) left_token: <Left_CommandSub '$('> spids: [117 121] ) } spids: [115] ) ] spids: [113] ) (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')} ) ] ) ] spids: [99] ) spids: [95 98] ) (command.FuncDef name: extract body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ VSub_Number '$0')} {(_extract)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [158] ) spids: [154 157] ) (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 ';'> ) ] spids: [177] ) spids: [173 176] ) (command.FuncDef name: chmod-chroot body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[203]) 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')} ) spids: [204 208] ) } spids: [203] ) ] spids: [201] ) (C {(sudo)} {(chmod)} {(755)} {($ VSub_DollarName '$dest')}) ] spids: [198] ) spids: [194 197] ) (command.FuncDef name: _setup-dns body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir spids:[235]) 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')} ) spids: [236 240] ) } spids: [235] ) ] spids: [233] ) (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')] ) ] ) ] spids: [230] ) spids: [226 229] ) (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 ';'> ) ] spids: [262] ) spids: [258 261] ) (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 spids:[290]) 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')} ) spids: [291 295] ) } spids: [290] ) ] spids: [288] ) (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')] ) ] ) ] spids: [285] ) spids: [281 284] ) (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 spids:[347]) 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')} ) spids: [348 352] ) } spids: [347] ) ] spids: [345] ) (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')] ) ] ) ] spids: [342] ) spids: [338 341] ) (command.FuncDef name: list-packages body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir spids:[382]) 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')} ) spids: [383 387] ) } spids: [382] ) ] spids: [380] ) (C {(sudo)} {(chroot)} {($ VSub_DollarName '$chroot_dir')} {(apk)} {(info)}) ] spids: [377] ) spids: [373 376] ) (command.FuncDef name: destroy-chroot body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir spids:[412]) 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')} ) spids: [413 417] ) } spids: [412] ) ] spids: [410] ) (C {(sudo)} {(rm)} {(-r)} {(-rf)} {($ VSub_DollarName '$chroot_dir')}) ] spids: [407] ) spids: [403 406] ) (command.FuncDef name: enter-chroot body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir spids:[445]) 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')} ) spids: [446 450] ) } spids: [445] ) ] spids: [443] ) (C {(shift)}) (C {(sudo)} {(chroot)} {($ VSub_DollarName '$chroot_dir')} {(DQ ($ VSub_At '$@'))}) ] spids: [440] ) spids: [436 439] ) (command.FuncDef name: interactive body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir spids:[478]) 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')} ) spids: [479 483] ) } spids: [478] ) ] spids: [476] ) (C {(enter-chroot)} {($ VSub_DollarName '$chroot_dir')} {(/bin/sh)}) ] spids: [473] ) spids: [469 472] ) (command.Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:OIL_VERSION spids:[497]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(head)} {(-n)} {(1)} {(oil-version.txt)})] ) left_token: <Left_CommandSub '$('> spids: [498 506] ) } spids: [497] ) ] spids: [495] ) (command.FuncDef name: _copy-tar body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir spids:[525]) 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')} ) spids: [526 530] ) } spids: [525] ) ] spids: [523] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name spids:[535]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 2> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonHyphen arg_word:{(oil)}) spids: [536 540] ) } spids: [535] ) ] spids: [533] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:version spids:[545]) 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')} ) spids: [546 550] ) } spids: [545] ) ] spids: [543] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[556]) op: Equal rhs: {($ VSub_DollarName '$chroot_dir') (/src)} spids: [556] ) ] spids: [554] ) (C {(mkdir)} {(-p)} {($ VSub_DollarName '$dest')}) (C {(cp)} {(-v)} {(_release/) ($ VSub_DollarName '$name') (-) ($ VSub_DollarName '$version') (.tar.gz)} {($ VSub_DollarName '$dest')} ) ] spids: [520] ) spids: [516 519] ) (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 ';'> ) ] spids: [586] ) spids: [582 585] ) (command.FuncDef name: _test-tar body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chroot_dir spids:[611]) 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')} ) spids: [612 616] ) } spids: [611] ) ] spids: [609] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name spids:[621]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 2> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonHyphen arg_word:{(oil)}) spids: [622 626] ) } spids: [621] ) ] spids: [619] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:version spids:[631]) 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')} ) spids: [632 636] ) } spids: [631] ) ] spids: [629] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:target spids:[642]) op: Equal rhs: {(_bin/) (${ VSub_Name name) (.ovm)} spids: [642] ) ] spids: [640] ) (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') ] ) ] ) ] spids: [606] ) spids: [602 605] ) (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 ';'> ) ] spids: [712] ) spids: [708 711] ) (C {(DQ ($ VSub_At '$@'))}) ] )