(command.CommandList children: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<nounset>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<pipefail>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<errexit>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <readonly> more_env: [] words: [ {<readonly>} {<Id.Lit_VarLike 'OIL_VERSION='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-n>} {<1>} {<oil-version.txt>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <readonly> more_env: [] words: [ {<readonly>} {<Id.Lit_VarLike 'OSH_RELEASE_BINARY='> <'_tmp/oil-tar-test/oil-'> ($ Id.VSub_DollarName OIL_VERSION) <'/_bin/osh'> } ] redirects: [] do_fork: T ) (command.ShFunction name_tok: <log> name: log body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_At '@'))}] redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_clean-tmp-dirs> name: _clean-tmp-dirs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <rm> more_env: [] words: [ {<rm>} {<-r>} {<-f>} (word.BracedTree parts: [ <'_tmp/'> (word_part.BracedTuple words: [{<spec>} {<wild>} {<unit>} {<gold>} {<osh2oil>}] ) ] ) (word.BracedTree parts: [ <'_tmp/'> (word_part.BracedTuple words: [{<osh-parser>} {<osh-runtime>} {<vm-baseline>} {<ovm-build>} {<oheap>}] ) ] ) {<'_tmp/metrics'>} {<'_tmp/oil-tar-test'>} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_clean> name: _clean body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_clean-tmp-dirs> more_env: [] words: [{<_clean-tmp-dirs>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-r>} {<-f>} {<_devbuild>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'build/actions.sh'> more_env: [] words: [{<'build/actions.sh'>} {<clean-repo>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_dev-build> name: _dev-build body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <'build/dev.sh'> more_env: [] words: [{<'build/dev.sh'>} {<all>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_release-build> name: _release-build body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <'build/prepare.sh'> more_env: [] words: [{<'build/prepare.sh'>} {<configure>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'build/prepare.sh'> more_env: [] words: [{<'build/prepare.sh'>} {<build-python>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.VSub_Number '$0'> more_env: [] words: [{($ Id.VSub_Number 0)} {<oil>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'build/test.sh'> more_env: [] words: [{<'build/test.sh'>} {<oil-tar>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <ln> more_env: [] words: [ {<ln>} {<-s>} {<-f>} {<--no-target-directory>} {<-v>} {<oil.ovm>} {($ Id.VSub_DollarName OSH_RELEASE_BINARY)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_test-release-build> name: _test-release-build body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <'test/alpine.sh'> more_env: [] words: [{<'test/alpine.sh'>} {<copy-tar>} {(SQ )} {<oil>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'test/alpine.sh'> more_env: [] words: [{<'test/alpine.sh'>} {<test-tar>} {(SQ )} {<oil>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'test/spec.sh'> more_env: [] words: [{<'test/spec.sh'>} {<link-busybox-ash>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'test/spec.sh'> more_env: [] words: [{<'test/spec.sh'>} {<smoke>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'test/osh2oil.sh'> more_env: [] words: [{<'test/osh2oil.sh'>} {<run-for-release>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'test/gold.sh'> more_env: [] words: [{<'test/gold.sh'>} {<run-for-release>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'test/spec.sh'> more_env: [ (EnvPair left: <Id.Lit_VarLike 'OSH_OVM='> name: OSH_OVM val: {($ Id.VSub_DollarName OSH_RELEASE_BINARY)} ) ] words: [{<'test/spec.sh'>} {<all>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <build-and-test> name: build-and-test body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_clean> more_env: [] words: [{<_clean>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_dev-build> more_env: [] words: [{<_dev-build>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'test/unit.sh'> more_env: [] words: [{<'test/unit.sh'>} {<run-for-release>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_release-build> more_env: [] words: [{<_release-build>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_test-release-build> more_env: [] words: [{<_test-release-build>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_install> name: _install body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <'test/spec.sh'> more_env: [] words: [{<'test/spec.sh'>} {<install-shells>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sudo> more_env: [] words: [{<sudo>} {<apt>} {<install>} {<python-dev>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <benchmark-build> name: benchmark-build body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_install> more_env: [] words: [{<_install>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_clean> more_env: [] words: [{<_clean>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_dev-build> more_env: [] words: [{<_dev-build>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_release-build> more_env: [] words: [{<_release-build>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <benchmark-run> name: benchmark-run body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <'benchmarks/auto.sh'> more_env: [ (EnvPair left: <Id.Lit_VarLike 'OSH_OVM='> name: OSH_OVM val: {($ Id.VSub_DollarName OSH_RELEASE_BINARY)} ) ] words: [{<'benchmarks/auto.sh'>} {<all>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <benchmark-run-on-1-machine> name: benchmark-run-on-1-machine body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <'benchmarks/oheap.sh'> more_env: [ (EnvPair left: <Id.Lit_VarLike 'OSH_OVM='> name: OSH_OVM val: {($ Id.VSub_DollarName OSH_RELEASE_BINARY)} ) ] words: [{<'benchmarks/oheap.sh'>} {<measure>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_compressed-tarball> name: _compressed-tarball body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'name='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<hello>}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'version='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 2> var_name: 2 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<0.0.0>}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'in='> <'_release/'> ($ Id.VSub_DollarName name) <.tar>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'out='> <'_release/'> ($ Id.VSub_DollarName name) <-> ($ Id.VSub_DollarName version) <.tar.gz> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <'build/actions.sh'> more_env: [] words: [{<'build/actions.sh'>} {<write-release-date>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <make> more_env: [] words: [{<make>} {($ Id.VSub_DollarName in)}] redirects: [] do_fork: T ) (command.TimeBlock keyword: <Id.KW_Time time> pipeline: (command.Simple blame_tok: <gzip> more_env: [] words: [{<gzip>} {<-c>} {($ Id.VSub_DollarName in)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName out)} ) ] do_fork: T ) ) (command.Simple blame_tok: <ls> more_env: [] words: [{<ls>} {<-l>} {($ Id.VSub_DollarName out)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'out2='> <'_release/'> ($ Id.VSub_DollarName name) <-> ($ Id.VSub_DollarName version) <.tar.xz> } ] redirects: [] do_fork: T ) (command.TimeBlock keyword: <Id.KW_Time time> pipeline: (command.Simple blame_tok: <xz> more_env: [] words: [{<xz>} {<-c>} {($ Id.VSub_DollarName in)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName out2)} ) ] do_fork: T ) ) (command.Simple blame_tok: <ls> more_env: [] words: [{<ls>} {<-l>} {($ Id.VSub_DollarName out2)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <oil> name: oil body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_compressed-tarball> more_env: [] words: [{<_compressed-tarball>} {<oil>} {($ Id.VSub_DollarName OIL_VERSION)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <hello> name: hello body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_compressed-tarball> more_env: [] words: [ {<_compressed-tarball>} {<hello>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-n>} {<1>} {<'build/testdata/hello-version.txt'>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <escape-segments> name: escape-segments body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <python> more_env: [] words: [ {<python>} {<-c>} { (SQ <'\n'> <'import cgi, re, sys\n'> <'\n'> <'print re.sub(\n'> <' r"\\x00(.*)\\x01", \n'> <' lambda match: cgi.escape(match.group(1)),\n'> <' sys.stdin.read())\n'> ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_git-changelog-body> name: _git-changelog-body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'prev_branch='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'cur_branch='> ($ Id.VSub_Number 2)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'format='> (SQ <'<tr>\n'> <' <td><a class="checksum"\n'> <' href="https://github.com/oilshell/oil/commit/%H">%h</a>\n'> <' </td>\n'> <' <td class="date">%ad</td>\n'> <' <td>%x00%an%x01</td>\n'> <' <td class="subject">%x00%s%x01</td>\n'> <' </tr>'> ) } ] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <git> more_env: [] words: [ {<git>} {<log>} {($ Id.VSub_DollarName prev_branch) <..> ($ Id.VSub_DollarName cur_branch)} {<--reverse>} {<--pretty> <Id.Lit_Equals '='> (DQ <'format:'> ($ Id.VSub_DollarName format))} {<--date> <Id.Lit_Equals '='> <short>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <escape-segments> more_env: [] words: [{<escape-segments>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_git-changelog-header> name: _git-changelog-header body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'prev_branch='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'cur_branch='> ($ Id.VSub_Number 2)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'<!DOCTYPE html>\n'> <'<html>\n'> <' <head>\n'> <' <title>Commits Between '> ($ Id.VSub_DollarName prev_branch) <' and '> ($ Id.VSub_DollarName cur_branch) <'</title>\n'> <' <style>\n'> <' /* Make it centered and skinny for readability */\n'> <' body {\n'> <' margin: 0 auto;\n'> <' width: 60em;\n'> <' }\n'> <' table {\n'> <' width: 100%;\n'> <' }\n'> <' code {\n'> <' color: green;\n'> <' }\n'> <' .checksum {\n'> <' font-family: monospace;\n'> <' }\n'> <' .date {\n'> <' /*font-family: monospace;*/\n'> <' }\n'> <' .subject {\n'> <' font-family: monospace;\n'> <' }\n'> <'\n'> <' /* Copied from oilshell.org bundle.css */\n'> <' .date {\n'> <' font-size: medium;\n'> <' color: #555;\n'> <' padding-left: 1em;\n'> <' }\n'> <' </style>\n'> <' </head>\n'> <' <body>\n'> <' <h3>Commits Between Branches <code>'> ($ Id.VSub_DollarName prev_branch) <'</code> and\n'> <' <code>'> ($ Id.VSub_DollarName cur_branch) <'</code></h3>\n'> <' <table>\n'> ] ) ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_git-changelog> name: _git-changelog body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_git-changelog-header> more_env: [] words: [{<_git-changelog-header>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_git-changelog-body> more_env: [] words: [{<_git-changelog-body>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [<' </table>\n'>] ) ) ] do_fork: T ) (command.Simple blame_tok: <_html-footer> more_env: [] words: [{<_html-footer>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <git-changelog-0.1> name: git-changelog-0.1 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'version='> (SQ <0.1.0>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_git-changelog> more_env: [] words: [{<_git-changelog>} {<'release/0.0.0'>} {<'release/0.1.0'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'../oilshell.org__deploy/release/'> ($ Id.VSub_DollarName version) <'/changelog.html'> } ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <git-changelog-0.2.alpha1> name: git-changelog-0.2.alpha1 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_git-changelog> more_env: [] words: [{<_git-changelog>} {<'release/0.1.0'>} {<'release/0.2.alpha1'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/changelog.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <git-changelog-0.2.0> name: git-changelog-0.2.0 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_git-changelog> more_env: [] words: [{<_git-changelog>} {<'release/0.1.0'>} {<'release/0.2.0'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/changelog.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <git-changelog-0.3.alpha1> name: git-changelog-0.3.alpha1 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_git-changelog> more_env: [] words: [{<_git-changelog>} {<'release/0.2.0'>} {<'release/0.3.alpha1'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/changelog.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <git-changelog-0.3.0> name: git-changelog-0.3.0 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_git-changelog> more_env: [] words: [{<_git-changelog>} {<'release/0.2.0'>} {<'release/0.3.0'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/changelog.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <git-changelog-0.4.0> name: git-changelog-0.4.0 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_git-changelog> more_env: [] words: [{<_git-changelog>} {<'release/0.3.0'>} {<'release/0.4.0'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/changelog.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <git-changelog-0.5.alpha1> name: git-changelog-0.5.alpha1 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_git-changelog> more_env: [] words: [{<_git-changelog>} {<'release/0.4.0'>} {<'release/0.5.alpha1'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/changelog.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <git-changelog-0.5.alpha2> name: git-changelog-0.5.alpha2 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_git-changelog> more_env: [] words: [{<_git-changelog>} {<'release/0.5.alpha1'>} {<'release/0.5.alpha2'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/changelog.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <git-changelog-0.5.alpha3> name: git-changelog-0.5.alpha3 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_git-changelog> more_env: [] words: [{<_git-changelog>} {<'release/0.5.alpha2'>} {<'release/0.5.alpha3'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/changelog.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <html-redirect> name: html-redirect body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'url='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'<!DOCTYPE html>\n'> <'<html>\n'> <' <head>\n'> <' <meta http-equiv='> <Id.Right_DoubleQuote '"'> <refresh> <Id.Right_DoubleQuote '"'> <' content='> <Id.Right_DoubleQuote '"'> <'0; url='> ($ Id.VSub_DollarName url) <Id.Right_DoubleQuote '"'> <' />\n'> <' </head>\n'> <' <body>\n'> <' <p>Redirect to<a href='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName url) <Id.Right_DoubleQuote '"'> <'>'> ($ Id.VSub_DollarName url) <'</a></p>\n'> <' </body>\n'> <'</html> \n'> ] ) ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <no-announcement> name: no-announcement body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'<!DOCTYPE html>\n'> <'<html>\n'> <' <head>\n'> <' </head>\n'> <' <body>\n'> <' <p>No announcement for this release.</p>\n'> <' </body>\n'> <'</html> \n'> ] ) ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <write-no-announcement> name: write-no-announcement body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <no-announcement> more_env: [] words: [{<no-announcement>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/announcement.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <announcement-0.0> name: announcement-0.0 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <html-redirect> more_env: [] words: [{<html-redirect>} {(SQ <'/blog/2017/07/23.html'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'../oilshell.org__deploy/release/0.0.0/announcement.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <announcement-0.1> name: announcement-0.1 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'version='> (SQ <0.1.0>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <html-redirect> more_env: [] words: [{<html-redirect>} {(SQ <'/blog/2017/09/09.html'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'../oilshell.org__deploy/release/'> ($ Id.VSub_DollarName version) <'/announcement.html'> } ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <announcement-0.2> name: announcement-0.2 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <html-redirect> more_env: [] words: [{<html-redirect>} {(SQ <'/blog/2017/11/10.html'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/announcement.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <announcement-0.3> name: announcement-0.3 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <html-redirect> more_env: [] words: [{<html-redirect>} {(SQ <'/blog/2017/12/22.html'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/announcement.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <announcement-0.4> name: announcement-0.4 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <html-redirect> more_env: [] words: [{<html-redirect>} {(SQ <'/blog/2018/02/03.html'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/announcement.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <announcement-0.5.alpha3> name: announcement-0.5.alpha3 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <html-redirect> more_env: [] words: [{<html-redirect>} {(SQ <'/blog/2018/04/30.html'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_release/VERSION/announcement.html'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_link> name: _link body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <ln> more_env: [] words: [{<ln>} {<-s>} {<-f>} {<-v>} {<--no-target-directory>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <compress-txt> name: compress-txt body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'name='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'--- test/'> ($ Id.VSub_DollarName name))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'out='> (DQ ($ Id.VSub_DollarName root) <'/test/'> ($ Id.VSub_DollarName name) <.wwz>) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pushd> more_env: [] words: [{<pushd>} {<'_tmp/'> ($ Id.VSub_DollarName name)}] redirects: [] do_fork: T ) (command.TimeBlock keyword: <Id.KW_Time time> pipeline: (command.Simple blame_tok: <zip> more_env: [] words: [{<zip>} {<-r>} {<-q>} {($ Id.VSub_DollarName out)} {<.>}] redirects: [] do_fork: T ) ) (command.Simple blame_tok: <popd> more_env: [] words: [{<popd>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <compress> name: compress body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'root='> ($ Id.VSub_DollarName PWD) <'/_release/VERSION/'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <compress-txt> more_env: [] words: [{<compress-txt>} {<osh2oil>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <compress-txt> more_env: [] words: [{<compress-txt>} {<gold>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'--- test/unit'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'out='> (DQ ($ Id.VSub_DollarName root) <'/test/unit.wwz'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pushd> more_env: [] words: [{<pushd>} {<'_tmp/unit'>}] redirects: [] do_fork: T ) (command.TimeBlock keyword: <Id.KW_Time time> pipeline: (command.Simple blame_tok: <zip> more_env: [] words: [{<zip>} {<-r>} {<-q>} {($ Id.VSub_DollarName out)} {<.>}] redirects: [] do_fork: T ) ) (command.Simple blame_tok: <popd> more_env: [] words: [{<popd>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'--- test/spec'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'out='> (DQ ($ Id.VSub_DollarName root) <'/test/spec.wwz'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pushd> more_env: [] words: [{<pushd>} {<'_tmp/spec'>}] redirects: [] do_fork: T ) (command.TimeBlock keyword: <Id.KW_Time time> pipeline: (command.Simple blame_tok: <zip> more_env: [] words: [{<zip>} {<-r>} {<-q>} {($ Id.VSub_DollarName out)} {<.>}] redirects: [] do_fork: T ) ) (command.Simple blame_tok: <popd> more_env: [] words: [{<popd>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'--- test/wild'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'out='> (DQ ($ Id.VSub_DollarName root) <'/test/wild.wwz'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pushd> more_env: [] words: [{<pushd>} {<'_tmp/wild/www'>}] redirects: [] do_fork: T ) (command.TimeBlock keyword: <Id.KW_Time time> pipeline: (command.Simple blame_tok: <zip> more_env: [] words: [{<zip>} {<-r>} {<-q>} {($ Id.VSub_DollarName out)} {<.>}] redirects: [] do_fork: T ) ) (command.Simple blame_tok: <popd> more_env: [] words: [{<popd>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'--- metrics'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'out='> (DQ ($ Id.VSub_DollarName root) <'/metrics.wwz'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pushd> more_env: [] words: [{<pushd>} {<'_tmp/metrics'>}] redirects: [] do_fork: T ) (command.TimeBlock keyword: <Id.KW_Time time> pipeline: (command.Simple blame_tok: <zip> more_env: [] words: [{<zip>} {<-r>} {<-q>} {($ Id.VSub_DollarName out)} {<.>}] redirects: [] do_fork: T ) ) (command.Simple blame_tok: <popd> more_env: [] words: [{<popd>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <compress-benchmarks> more_env: [] words: [{<compress-benchmarks>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tree> more_env: [] words: [{<tree>} {<'_release/VERSION'>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <compress-benchmarks> name: compress-benchmarks body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'root='> ($ Id.VSub_DollarName PWD) <'/_release/VERSION/'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName root)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'--- benchmarks'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'out='> (DQ ($ Id.VSub_DollarName root) <'/benchmarks.wwz'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pushd> more_env: [] words: [{<pushd>} {<_tmp>}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <find> more_env: [] words: [ {<find>} (word.BracedTree parts: [ <'osh-parser/'> (word_part.BracedTuple words: [{<stage1>} {<stage2>} {<index.html>}] ) ] ) (word.BracedTree parts: [ <'osh-runtime/'> (word_part.BracedTuple words: [{<stage1>} {<stage2>} {<index.html>}] ) ] ) (word.BracedTree parts: [ <'vm-baseline/'> (word_part.BracedTuple words: [{<stage1>} {<stage2>} {<index.html>}] ) ] ) (word.BracedTree parts: [ <'ovm-build/'> (word_part.BracedTuple words: [{<stage1>} {<stage2>} {<index.html>}] ) ] ) (word.BracedTree parts: [ <'oheap/'> (word_part.BracedTuple words: [{<stage1>} {<stage2>} {<index.html>}] ) ] ) {<-type>} {<f>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <xargs> more_env: [] words: [{<xargs>} {<--verbose>} {<-->} {<zip>} {<-q>} {($ Id.VSub_DollarName out)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <popd> more_env: [] words: [{<popd>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <line-counts> name: line-counts body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'out='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName out)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'build/metrics.sh'> more_env: [] words: [{<'build/metrics.sh'>} {<linecount-pydeps>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName out) <'/pydeps.txt'>} ) ] do_fork: T ) (command.Simple blame_tok: <'build/metrics.sh'> more_env: [] words: [{<'build/metrics.sh'>} {<linecount-nativedeps>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName out) <'/nativedeps.txt'>} ) ] do_fork: T ) (command.Simple blame_tok: <'scripts/count.sh'> more_env: [] words: [{<'scripts/count.sh'>} {<all>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName out) <'/src.txt'>} ) ] do_fork: T ) (command.Simple blame_tok: <'scripts/count.sh'> more_env: [] words: [{<'scripts/count.sh'>} {<parser>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName out) <'/parser.txt'>} ) ] do_fork: T ) (command.Simple blame_tok: <'scripts/count.sh'> more_env: [] words: [{<'scripts/count.sh'>} {<runtime>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName out) <'/runtime.txt'>} ) ] do_fork: T ) (command.Simple blame_tok: <'scripts/count.sh'> more_env: [] words: [{<'scripts/count.sh'>} {<oil-osh-cloc>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName out) <'/oil-osh-cloc.txt'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <metrics> name: metrics body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'out='> <'_tmp/metrics'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName out)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'build/metrics.sh'> more_env: [] words: [{<'build/metrics.sh'>} {<pyc-bytes>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName out) <'/pyc-bytes.txt'>} ) ] do_fork: T ) (command.Simple blame_tok: <line-counts> more_env: [] words: [{<line-counts>} {($ Id.VSub_DollarName out) <'/line-counts'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tree> more_env: [] words: [{<tree>} {($ Id.VSub_DollarName out)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_copy-path> name: _copy-path body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'src='> ($ Id.VSub_Number 1)} {<Id.Lit_VarLike 'dest='> ($ Id.VSub_Number 2)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [ {<mkdir>} {<-p>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {($ Id.VSub_DollarName dest)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [{<cp>} {<-v>} {($ Id.VSub_DollarName src)} {($ Id.VSub_DollarName dest)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <copy-web> name: copy-web body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (command.Simple blame_tok: <find> more_env: [] words: [ {<find>} {<web>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('> ch:'(')} {<-name>} {<_tmp>} {<-a>} {<-prune>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')')} {<-o>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('> ch:'(')} {<-name>} {(SQ <'*.css'>)} {<-o>} {<-name>} {(SQ <'*.js'>)} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')')} {<-a>} {<-printf>} {(SQ <'%p _release/VERSION/%p\\n'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <xargs> more_env: [] words: [{<xargs>} {<-n>} {<2>} {<-->} {($ Id.VSub_Number 0)} {<_copy-path>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <build-tree> name: build-tree body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'root='> <'_release/VERSION'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [ {<mkdir>} {<-p>} (word.BracedTree parts: [ ($ Id.VSub_DollarName root) <'/'> (word_part.BracedTuple words:[{<doc>} {<test>}]) ] ) ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [ {<cp>} {<-v>} {<'_build/release-date.txt'>} {<oil-version.txt>} {($ Id.VSub_DollarName root)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <'build/doc.sh'> more_env: [] words: [{<'build/doc.sh'>} {<osh-quick-ref>} {<'_release/VERSION'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'build/doc.sh'> more_env: [] words: [{<'build/doc.sh'>} {<install>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'build/doc.sh'> more_env: [] words: [{<'build/doc.sh'>} {<release-index>} {($ Id.VSub_DollarName root) <'/index.html'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <copy-web> more_env: [] words: [{<copy-web>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tree> more_env: [] words: [{<tree>} {($ Id.VSub_DollarName root)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <deploy-doc> name: deploy-doc body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'deploy_repo='> (SQ <'../oilshell.org__deploy'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'release_root_dir='> (DQ ($ Id.VSub_DollarName deploy_repo) <'/release'>) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'release_dir='> (DQ ($ Id.VSub_DollarName release_root_dir) <'/'> ($ Id.VSub_DollarName OIL_VERSION)) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [ {<cp>} {<-v>} {<-r>} {<--force>} {<--no-target-directory>} {<'_release/VERSION/'>} {($ Id.VSub_DollarName release_dir) <'/'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <html-index> more_env: [] words: [{<html-index>} {($ Id.VSub_DollarName release_root_dir)} {<'_tmp/releases.html'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [{<cp>} {<-v>} {<'_tmp/releases.html'>} {($ Id.VSub_DollarName deploy_repo)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tree> more_env: [] words: [{<tree>} {<-L>} {<3>} {($ Id.VSub_DollarName release_root_dir)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <ls> more_env: [] words: [{<ls>} {<-l>} {($ Id.VSub_DollarName deploy_repo) <'/releases.html'>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <deploy-tar> name: deploy-tar body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'download_dir='> (SQ <'../oilshell.org__deploy/download/'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName download_dir)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [ {<cp>} {<-v>} {<'_release/oil-'> ($ Id.VSub_DollarName OIL_VERSION) <.tar.> <Id.Lit_Star '*'>} {($ Id.VSub_DollarName download_dir)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <ls> more_env: [] words: [{<ls>} {<-l>} {($ Id.VSub_DollarName download_dir)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_release-files-html> name: _release-files-html body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'version='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'<table class="file-table">'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (SQ < '<tr><thead> <td>File</td> <td>Size</td> <td>SHA256 Checksum</td> </thead></tr>' > ) } ] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [name] iterable: (for_iter.Words words: [ (word.BracedTree parts: [ <oil-> ($ Id.VSub_DollarName version) <.tar.> (word_part.BracedTuple words:[{<xz>} {<gz>}]) ] ) ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'url='> (DQ <'download/'> ($ Id.VSub_DollarName name))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'path='> <'../oilshell.org__deploy/download/'> ($ Id.VSub_DollarName name) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'checksum='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <sha256sum> more_env: [] words: [{<sha256sum>} {($ Id.VSub_DollarName path)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{print $1}'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'size='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <stat> more_env: [] words: [{<stat>} {<--format>} {(SQ <'%s'>)} {($ Id.VSub_DollarName path)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(SQ <'<tr> <td class="filename"><a href="'>) ($ Id.VSub_DollarName url) (SQ <'">'>) ($ Id.VSub_DollarName name) (SQ <'</a></td>\n'> <' <td class="size">'>) ($ Id.VSub_DollarName size) (SQ <'</td>\n'> <' <td class="checksum">'>) ($ Id.VSub_DollarName checksum) (SQ <'</td>\n'> <' </tr>'>) } ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'</table>'>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_html-index> name: _html-index body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'release_root_dir='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [entry] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName release_root_dir) <'/'> <Id.Lit_Star '*'>}] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-d>} {($ Id.VSub_DollarName entry)}] redirects: [] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] spids: [2801 2812] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'dir='> ($ Id.VSub_DollarName entry)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'version='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <head> more_env: [] words: [ {<head>} {<-n>} {<1>} {($ Id.VSub_DollarName dir) <'/oil-version.txt'>} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'release_date='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <head> more_env: [] words: [ {<head>} {<-n>} {<1>} {($ Id.VSub_DollarName dir) <'/release-date.txt'>} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'-- '> ($ Id.VSub_DollarName dir))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'Version: '> ($ Id.VSub_DollarName version))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'Release Date: '> ($ Id.VSub_DollarName release_date))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ )}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName release_date) <' '> ($ Id.VSub_DollarName version)) } ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_tmp/release-meta.txt'>} ) ] ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>} {<-r>} {<'_tmp/release-meta.txt'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_tmp/sorted-releases.txt'>} ) ] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<date>} {<Id.Lit_Underscore _>} {<version>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'Release Date: '> ($ Id.VSub_DollarName date))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'Version: '> ($ Id.VSub_DollarName version))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(SQ <'<a name="'>) ($ Id.VSub_DollarName version) (SQ <'"></a>'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'<h2>Version '> ($ Id.VSub_DollarName version) <'</h2>'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'<p class='>) <date> (DQ <'>'> ($ Id.VSub_DollarName date) <'</p>'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(SQ <'<p> <a href="release/'>) ($ Id.VSub_DollarName version) (SQ <'/announcement.html">Release Announcement</a>\n'> <' | <a href="release/'> ) ($ Id.VSub_DollarName version) (SQ <'/doc/INSTALL.html">INSTALL</a>\n'> <' | <a href="release/'> ) ($ Id.VSub_DollarName version) (SQ <'/">Docs and Details</a>\n'> <' </p>'>) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <_release-files-html> more_env: [] words: [{<_release-files-html>} {($ Id.VSub_DollarName version)}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'_tmp/sorted-releases.txt'>} ) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_releases-html-header> name: _releases-html-header body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'<!DOCTYPE html>\n'> <'<html>\n'> <' <head>\n'> <' <title>Oil Releases</title>\n'> <' <style>\n'> <' /* Make it centered and skinny for readability */\n'> <' body {\n'> <' margin: 0 auto;\n'> <' width: 60em;\n'> <' }\n'> <' h1 {\n'> <' text-align: center;\n'> <' }\n'> <' thead {\n'> <' font-weight: bold;\n'> <' }\n'> <' /* Style for checksum, file size, etc. */\n'> <'\n'> <' .file-table {\n'> <' width: 100%;\n'> <' }\n'> <'\n'> <' .filename {\n'> <' font-family: monospace;\n'> <' }\n'> <'\n'> <' .size {\n'> <' }\n'> <' .checksum {\n'> <' font-family: monospace;\n'> <' color: #555;\n'> <' }\n'> <'\n'> <' /* Copied from oilshell.org bundle.css */\n'> <' .date {\n'> <' font-size: medium;\n'> <' color: #555;\n'> <' padding-left: 1em;\n'> <' }\n'> <' #home-link {\n'> <' text-align: right;\n'> <' }\n'> <' </style>\n'> <' </head>\n'> <' <body>\n'> <' <p id='> <Id.Right_DoubleQuote '"'> <home-link> <Id.Right_DoubleQuote '"'> <'>\n'> <' <a href='> <Id.Right_DoubleQuote '"'> <'/'> <Id.Right_DoubleQuote '"'> <'>oilshell.org</a>\n'> <' </p>\n'> <' <h1>Oil Releases</h1>\n'> ] ) ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_html-footer> name: _html-footer body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [<' </body>\n'> <'</html>\n'>] ) ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <html-index> name: html-index body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'release_root_dir='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'out='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 2> var_name: 2 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<_tmp> <Id.Lit_Slash '/'> <releases.html>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_releases-html-header> more_env: [] words: [{<_releases-html-header>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_html-index> more_env: [] words: [{<_html-index>} {($ Id.VSub_DollarName release_root_dir)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_html-footer> more_env: [] words: [{<_html-footer>}] redirects: [] do_fork: T ) ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName out)} ) ] right: <Id.Lit_RBrace '}'> ) (command.Simple blame_tok: <ls> more_env: [] words: [{<ls>} {<-l>} {($ Id.VSub_DollarName out)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] )