(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: <source>
      more_env: []
      words: [{<source>} {<'build/common.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <replace-print>
      name: replace-print
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <grep>
              more_env: []
              words: [
                {<grep>}
                {(SQ <'print '>)}
                (word.BracedTree
                  parts: [(word_part.BracedTuple words:[{<osh>} {<core>}]) <'/'> <Id.Lit_Star '*'> <.py>]
                )
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <make-bin-links>
      name: make-bin-links
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<-p>} {<bin>} {<_bin>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [link]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (DQ 
                        (BracedVarSub
                          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 '}'>
                        )
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <ln>
                      more_env: []
                      words: [
                        {<ln>}
                        {<-s>}
                        {<-f>}
                        {<--verbose>}
                        {<oil.py>}
                        {<'bin/'> ($ Id.VSub_DollarName link)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [link]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (DQ 
                        (BracedVarSub
                          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 '}'>
                        )
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <ln>
                      more_env: []
                      words: [
                        {<ln>}
                        {<-s>}
                        {<-f>}
                        {<--verbose>}
                        {<oil.ovm>}
                        {<'_bin/'> ($ Id.VSub_DollarName link)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [link]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name OPY_SYMLINKS>
                          var_name: OPY_SYMLINKS
                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <ln>
                      more_env: []
                      words: [
                        {<ln>}
                        {<-s>}
                        {<-f>}
                        {<--verbose>}
                        {<opy_.py>}
                        {<'bin/'> ($ Id.VSub_DollarName link)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <ln>
                      more_env: []
                      words: [
                        {<ln>}
                        {<-s>}
                        {<-f>}
                        {<--verbose>}
                        {<opy.ovm>}
                        {<'_bin/'> ($ Id.VSub_DollarName link)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <grep-unicode>
      name: grep-unicode
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <grep>
              more_env: [(EnvPair left:<Id.Lit_VarLike 'LC_ALL='> name:LC_ALL val:{<C>})]
              words: [
                {<grep>}
                {<--color> <Id.Lit_Equals '='> (SQ <auto>)}
                {<--perl>}
                {<-n>}
                {(SQ <'[^\\x00-\\x7F]'>)}
                {(DQ ($ Id.VSub_At '@'))}
              ]
              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
    )
  ]
)