(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:[52]) op: Equal rhs: { (SQ < 'http://distfiles.gentoo.org/releases/amd64/autobuilds/20180116T214503Z/stage3-amd64-20180116T214503Z.tar.xz' > ) } spids: [52] ) ] spids: [50] ) (command.Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CHROOT_DIR spids:[59]) op: Equal rhs: {(_chroot/gentoo)} spids: [59] ) ] spids: [57] ) (command.Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PORTAGE_URL spids:[65]) op: Equal rhs: {(SQ <'http://distfiles.gentoo.org/snapshots/portage-20180202.tar.xz'>)} spids: [65] ) ] spids: [63] ) (command.FuncDef name: download body: (command.BraceGroup children: [ (C {(wget)} {(--no-clobber)} {(--directory)} {(_tmp)} {($ VSub_DollarName '$ROOTFS_URL')}) (C {(wget)} {(--no-clobber)} {(--directory)} {(_tmp)} {($ VSub_DollarName '$PORTAGE_URL')}) ] spids: [75] ) spids: [71 74] ) (command.FuncDef name: _extract body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[111]) 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: [112 116] ) } spids: [111] ) ] spids: [109] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tarball spids:[122]) op: Equal rhs: {(_tmp/) (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(basename)} {($ VSub_DollarName '$ROOTFS_URL')})] ) left_token: <Left_CommandSub '$('> spids: [124 128] ) } spids: [122] ) ] spids: [120] ) (C {(mkdir)} {(-p)} {($ VSub_DollarName '$dest')}) (command.SimpleCommand words: [{(tar)} {(--extract)} {(--xz)} {(--directory)} {($ VSub_DollarName '$dest')}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_DollarName '$tarball')} ) ] ) ] spids: [106] ) spids: [102 105] ) (command.FuncDef name: extract body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ VSub_Number '$0')} {(_extract)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [163] ) spids: [159 162] ) (command.FuncDef name: _extract-portage body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[188]) 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: [189 193] ) } spids: [188] ) ] spids: [186] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:portage_dest spids:[198]) op: Equal rhs: {($ VSub_DollarName '$dest') (/usr)} spids: [198] ) ] spids: [196] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tarball spids:[206]) op: Equal rhs: {(_tmp/) (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(basename)} {($ VSub_DollarName '$PORTAGE_URL')})] ) left_token: <Left_CommandSub '$('> spids: [208 212] ) } spids: [206] ) ] spids: [204] ) (command.SimpleCommand words: [{(tar)} {(--extract)} {(--xz)} {(--directory)} {($ VSub_DollarName '$portage_dest')}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_DollarName '$tarball')} ) ] ) ] spids: [183] ) spids: [179 182] ) (command.FuncDef name: extract-portage body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ VSub_Number '$0')} {(_extract-portage)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [240] ) spids: [236 239] ) (command.FuncDef name: _mount-dirs body: (command.BraceGroup children: [ (C {(mount)} {(--rbind)} {(/dev)} {($ VSub_DollarName '$CHROOT_DIR') (/dev)}) (C {(mount)} {(--make-rslave)} {($ VSub_DollarName '$CHROOT_DIR') (/dev)}) (C {(mount)} {(-t)} {(proc)} {(/proc)} {($ VSub_DollarName '$CHROOT_DIR') (/proc)}) (C {(mount)} {(--rbind)} {(/sys)} {($ VSub_DollarName '$CHROOT_DIR') (/sys)}) (C {(mount)} {(--make-rslave)} {($ VSub_DollarName '$CHROOT_DIR') (/sys)}) (C {(mount)} {(--rbind)} {(/tmp)} {($ VSub_DollarName '$CHROOT_DIR') (/tmp)}) ] spids: [263] ) spids: [259 262] ) (command.FuncDef name: mount-dirs body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ VSub_Number '$0')} {(_mount-dirs)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [330] ) spids: [326 329] ) (command.FuncDef name: _setup-portage body: (command.BraceGroup children: [ (C {(cp)} {(-v)} {($ VSub_DollarName '$CHROOT_DIR') (/usr/share/portage/config/make.conf.example)} {($ VSub_DollarName '$CHROOT_DIR') (/etc/portage)} ) ] spids: [350] ) spids: [346 349] ) (command.FuncDef name: setup-portage body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ VSub_Number '$0')} {(_setup-portage)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [369] ) spids: [365 368] ) (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:[418]) 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: [419 423] ) } spids: [418] ) ] spids: [416] ) (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: 440 stdin_parts: [('apk update\n') ('apk add bash make gcc musl-dev \n')] ) ] ) ] spids: [413] ) spids: [409 412] ) (C {(DQ ($ VSub_At '$@'))}) ] )