(command.CommandList children: [ (C {(Id.KW_Set set)} {(-o)} {(nounset)}) (C {(Id.KW_Set set)} {(-o)} {(pipefail)}) (C {(Id.KW_Set set)} {(-o)} {(errexit)}) (C {(readonly)} {(Id.Lit_VarLike 'ROOTFS_URL=') (SQ (Token id: Id.Lit_Chars val: 'http://distfiles.gentoo.org/releases/amd64/autobuilds/20180116T214503Z/stage3-amd64-20180116T214503Z.tar.xz' span_id: 54 ) ) } ) (C {(readonly)} {(Id.Lit_VarLike 'CHROOT_DIR=') (_chroot/gentoo)}) (C {(readonly)} {(Id.Lit_VarLike 'PORTAGE_URL=') (SQ (Token id: Id.Lit_Chars val: 'http://distfiles.gentoo.org/snapshots/portage-20180202.tar.xz' span_id: 67 ) ) } ) (command.ShFunction name: download body: (command.BraceGroup children: [ (C {(wget)} {(--no-clobber)} {(--directory)} {(_tmp)} {($ Id.VSub_DollarName '$ROOTFS_URL')}) (C {(wget)} {(--no-clobber)} {(--directory)} {(_tmp)} {($ Id.VSub_DollarName '$PORTAGE_URL')}) ] ) ) (command.ShFunction name: _extract body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'dest=') (braced_var_sub token: (Token id:Id.VSub_Number val:1 span_id:113) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$CHROOT_DIR')} ) ) } ) (C {(local)} {(Id.Lit_VarLike 'tarball=') (_tmp/) (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:124) command_list: (command.CommandList children: [(C {(basename)} {($ Id.VSub_DollarName '$ROOTFS_URL')})] ) ) } ) (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$dest')}) (command.Simple words: [{(tar)} {(--extract)} {(--xz)} {(--directory)} {($ Id.VSub_DollarName '$dest')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:153) fd: -1 arg_word: {($ Id.VSub_DollarName '$tarball')} ) ] ) ] ) ) (command.ShFunction name: extract body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ Id.VSub_Number '$0')} {(_extract)} {(DQ ($ Id.VSub_At '$@'))}) terminator: (Token id:Id.Op_Semi val:';' span_id:174) ) ] ) ) (command.ShFunction name: _extract-portage body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'dest=') (braced_var_sub token: (Token id:Id.VSub_Number val:1 span_id:190) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$CHROOT_DIR')} ) ) } ) (C {(local)} {(Id.Lit_VarLike 'portage_dest=') ($ Id.VSub_DollarName '$dest') (/usr)}) (C {(local)} {(Id.Lit_VarLike 'tarball=') (_tmp/) (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:208) command_list: (command.CommandList children: [(C {(basename)} {($ Id.VSub_DollarName '$PORTAGE_URL')})] ) ) } ) (command.Simple words: [ {(tar)} {(--extract)} {(--xz)} {(--directory)} {($ Id.VSub_DollarName '$portage_dest')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:230) fd: -1 arg_word: {($ Id.VSub_DollarName '$tarball')} ) ] ) ] ) ) (command.ShFunction name: extract-portage body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ Id.VSub_Number '$0')} {(_extract-portage)} {(DQ ($ Id.VSub_At '$@'))}) terminator: (Token id:Id.Op_Semi val:';' span_id:251) ) ] ) ) (command.ShFunction name: _mount-dirs body: (command.BraceGroup children: [ (C {(mount)} {(--rbind)} {(/dev)} {($ Id.VSub_DollarName '$CHROOT_DIR') (/dev)}) (C {(mount)} {(--make-rslave)} {($ Id.VSub_DollarName '$CHROOT_DIR') (/dev)}) (C {(mount)} {(-t)} {(Id.KW_Proc proc)} {(/proc)} {($ Id.VSub_DollarName '$CHROOT_DIR') (/proc)} ) (C {(mount)} {(--rbind)} {(/sys)} {($ Id.VSub_DollarName '$CHROOT_DIR') (/sys)}) (C {(mount)} {(--make-rslave)} {($ Id.VSub_DollarName '$CHROOT_DIR') (/sys)}) (C {(mount)} {(--rbind)} {(/tmp)} {($ Id.VSub_DollarName '$CHROOT_DIR') (/tmp)}) ] ) ) (command.ShFunction name: mount-dirs body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ Id.VSub_Number '$0')} {(_mount-dirs)} {(DQ ($ Id.VSub_At '$@'))}) terminator: (Token id:Id.Op_Semi val:';' span_id:341) ) ] ) ) (command.ShFunction name: _setup-portage body: (command.BraceGroup children: [ (C {(cp)} {(-v)} {($ Id.VSub_DollarName '$CHROOT_DIR') (/usr/share/portage/config/make.conf.example)} {($ Id.VSub_DollarName '$CHROOT_DIR') (/etc/portage)} ) ] ) ) (command.ShFunction name: setup-portage body: (command.BraceGroup children: [ (command.Sentence child: (C {(sudo)} {($ Id.VSub_Number '$0')} {(_setup-portage)} {(DQ ($ Id.VSub_At '$@'))}) terminator: (Token id:Id.Op_Semi val:';' span_id:380) ) ] ) ) (command.ShFunction name: add-oil-build-deps body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'chroot_dir=') (braced_var_sub token: (Token id:Id.VSub_Number val:1 span_id:420) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$CHROOT_DIR')} ) ) } ) (command.Simple words: [{(sudo)} {(chroot)} {($ Id.VSub_DollarName '$chroot_dir')} {(/bin/sh)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:434) fd: -1 here_begin: {(EOF)} here_end_span_id: 440 stdin_parts: [('apk update\n') ('apk add bash make gcc musl-dev \n')] ) ] ) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )