(command.CommandList children: [ (C {<set>} {<-o>} {<nounset>}) (C {<set>} {<-o>} {<pipefail>}) (C {<set>} {<-o>} {<errexit>}) (C {<readonly>} {<Id.Lit_VarLike 'THIS_DIR='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<cd>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {($ Id.VSub_Number 0)}) right: <Id.Eof_RParen _> ) } ) (C {<pwd>}) ] ) right: <Id.Eof_RParen _> ) } ) (C {<source>} {($ Id.VSub_DollarName THIS_DIR) <'/common.sh'>}) (C {<source>} {($ Id.VSub_DollarName THIS_DIR) <'/../build/common.sh'>}) (command.ShFunction name: md5-manifest body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'tree='> ($ Id.VSub_Number 1)}) (C {<pushd>} {($ Id.VSub_DollarName tree)}) (command.Pipeline children: [ (C {<find>} {<.>} {<-type>} {<f>}) (C {<sort>}) (C {<xargs>} {<stat>} {<--format>} {(SQ <'%s %n'>)}) (C {<tee>} {<SIZES.txt>}) ] negated: F stderr_indices: [] ) (command.Pipeline children: [ (C {<find>} {<.>} {<-type>} {<f>}) (C {<sort>}) (C {<xargs>} {<md5sum>}) (C {<tee>} {<MD5.txt>}) ] negated: F stderr_indices: [] ) (C {<popd>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: _compile-tree body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'src_tree='> ($ Id.VSub_Number 1)}) (C {<local>} {<Id.Lit_VarLike 'dest_tree='> ($ Id.VSub_Number 2)}) (C {<local>} {<Id.Lit_VarLike 'version='> ($ Id.VSub_Number 3)}) (C {<shift>} {<3>}) (C {<rm>} {<-r>} {<-f>} {($ Id.VSub_DollarName dest_tree)}) (C {<local>} {<Id.Lit_VarLike 'ext='> <pyc>}) (command.ForEach iter_names: [rel_path] iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}]) body: (command.DoGroup children: [ (C {<echo>} {($ Id.VSub_DollarName rel_path)}) (C {<local>} {<Id.Lit_VarLike 'dest='> (${ Id.VSub_Name dest_tree) <'/'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name rel_path> var_name: rel_path suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{<.py>}) right: <Id.Right_DollarBrace '}'> ) <.> (${ Id.VSub_Name ext) } ) (C {<mkdir>} {<-p>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {($ Id.VSub_DollarName dest)}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName version)} {<Id.Lit_Equals '='>} {<ccompile>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'misc/ccompile.py'>} {($ Id.VSub_DollarName src_tree) <'/'> (${ Id.VSub_Name rel_path)} {($ Id.VSub_DollarName dest)} ) ] spids: [272 283] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName version)} {<Id.Lit_Equals '='>} {<opy>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName THIS_DIR) <'/../bin/opyc'>} {<compile>} {($ Id.VSub_DollarName src_tree) <'/'> (${ Id.VSub_Name rel_path)} {($ Id.VSub_DollarName dest)} ) ] spids: [297 308] ) ] else_action: [(C {<die>} {(DQ <bad>)})] redirects: [] ) ] ) redirects: [] ) (C {<tree>} {($ Id.VSub_DollarName dest_tree)}) (C {<md5-manifest>} {($ Id.VSub_DollarName dest_tree)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: compile-manifest body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'dest_dir='> ($ Id.VSub_Number 1)}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<full_src_path>} {<rel_dest_path>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (C {<local>} {<Id.Lit_VarLike 'dest='> ($ Id.VSub_DollarName dest_dir) <'/'> ($ Id.VSub_DollarName rel_dest_path) } ) (C {<mkdir>} {<-p>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {($ Id.VSub_DollarName dest)}) right: <Id.Eof_RParen _> ) } ) (C {<log>} {(DQ <' '> ($ Id.VSub_DollarName full_src_path))}) (C {($ Id.VSub_DollarName THIS_DIR) <'/../bin/opyc'>} {<compile>} {($ Id.VSub_DollarName full_src_path)} {($ Id.VSub_DollarName dest)} ) (C {<local>} {<Id.Lit_VarLike 'rel_py_path='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name rel_dest_path> var_name: rel_dest_path suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{<.pyc>}) right: <Id.Right_DollarBrace '}'> ) <.py> } ) (C {<echo>} {($ Id.VSub_DollarName dest)} {($ Id.VSub_DollarName rel_dest_path)}) (C {<echo>} {($ Id.VSub_DollarName full_src_path)} {($ Id.VSub_DollarName rel_py_path)} ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: make-mains body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'dir='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<_tmp> <Id.Lit_Slash '/'> <oil-opy>} ) right: <Id.Right_DollarBrace '}'> ) } ) (command.ForEach iter_names: [link] iterable: (for_iter.Words words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name OIL_SYMLINKS> var_name: OIL_SYMLINKS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) body: (command.DoGroup children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<echo>} {(SQ <'#!/bin/sh'>)}) (C {<echo>} {(DQ <'main='> ($ Id.VSub_DollarName link))}) (C {<echo>} {(SQ <'exec python $(dirname $0)/oil.pyc $main "$@"'>)}) ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName dir) <'/bin/'> ($ Id.VSub_DollarName link)} ) ] right: <Id.Lit_RBrace '}'> ) (C {<chmod>} {<--verbose>} {<Id.Lit_Other '+'> <x>} {($ Id.VSub_DollarName dir) <'/bin/'> ($ Id.VSub_DollarName link)} ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: _fill-oil-tree body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'dir='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<_tmp> <Id.Lit_Slash '/'> <repo-with-opy>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<cp>} {<-v>} (word.BracedTree parts: [<'../osh/'> (word_part.BracedTuple words:[{<osh>} {<types>}]) <.asdl>] ) {($ Id.VSub_DollarName dir) <'/osh'>} ) (C {<cp>} {<-v>} {<'../core/runtime.asdl'>} {($ Id.VSub_DollarName dir) <'/core'>}) (C {<cp>} {<-v>} {<'../asdl/arith.asdl'>} {($ Id.VSub_DollarName dir) <'/asdl'>}) (C {<ln>} {<-v>} {<-s>} {<-f>} (word.BracedTree parts: [ ($ Id.VSub_DollarName PWD) <'/../'> (word_part.BracedTuple words:[{<libc>} {<fastlex>}]) <.so> ] ) {($ Id.VSub_DollarName dir)} ) (C {<ln>} {<-v>} {<-s>} {<-f>} {($ Id.VSub_DollarName PWD) <'/../oil-version.txt'>} {($ Id.VSub_DollarName dir)} ) (C {<ln>} {<-v>} {<-s>} {<-f>} {<--no-target-directory>} {($ Id.VSub_DollarName PWD) <'/../_build'>} {($ Id.VSub_DollarName dir) <'/_build'>} ) (C {<mkdir>} {<-v>} {<-p>} {($ Id.VSub_DollarName dir) <'/_tmp'>}) (C {<local>} {<Id.Lit_VarLike 'stub='> ($ Id.VSub_DollarName dir) <'/bin/osh-byterun'>}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName stub)} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 735 stdin_parts: [ <'#!/bin/bash\n'> <'readonly THIS_DIR=$(cd $(dirname $0) && pwd)\n'> <'exec python $THIS_DIR/opy_.pyc opyc run $THIS_DIR/oil.pyc osh "$@"\n'> ] ) ) ] more_env: [] do_fork: T ) (C {<chmod>} {<Id.Lit_Other '+'> <x>} {($ Id.VSub_DollarName stub)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: oil-repo body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<local>} {<Id.Lit_VarLike 'repo_root='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr ops: [Id.Op_DAmp] children: [(C {<cd>} {($ Id.VSub_DollarName THIS_DIR) <'/..'>}) (C {<pwd>})] ) right: <Id.Eof_RParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'files='> (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<oil-python-sources>} {($ Id.VSub_DollarName repo_root)}) right: <Id.Eof_RParen _> ) } ] ) } ) (C {<_compile-tree>} {($ Id.VSub_DollarName repo_root)} {<'_tmp/repo-with-cpython/'>} {<ccompile>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name files> var_name: files bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ) (C {<_compile-tree>} {($ Id.VSub_DollarName repo_root)} {<'_tmp/repo-with-opy/'>} {<opy>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name files> var_name: files bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ) (C {<_fill-oil-tree>} {<'_tmp/repo-with-cpython'>}) (C {<_fill-oil-tree>} {<'_tmp/repo-with-opy'>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: _oil-bin-manifest body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<'build/actions.sh'>} {<runpy-py-to-compile>}) (C {<'build/actions.sh'>} {<py-to-compile>} {(SQ <.>)} {(SQ <bin.oil>)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) (C {<sort>}) (C {<uniq>}) ] negated: F stderr_indices: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: oil-bin body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<pushd>} {($ Id.VSub_DollarName THIS_DIR) <'/..'>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Pipeline children: [(C {<_oil-bin-manifest>}) (C {<compile-manifest>} {<'_tmp/oil-with-opy'>})] negated: F stderr_indices: [] ) (command.Simple words: [{<popd>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: _opy-bin-manifest body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<'build/actions.sh'>} {<py-to-compile>} {(SQ <.>)} {(SQ <bin.opy_>)})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: opy-bin body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<pushd>} {<..>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Pipeline children: [(C {<_opy-bin-manifest>}) (C {<compile-manifest>} {<'_tmp/opy-with-opy'>})] negated: F stderr_indices: [] ) (command.Simple words: [{<popd>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {(DQ ($ Id.VSub_At '@'))}) ] )