(command.CommandList
  children: [
    (C {<set>} {<-o>} {<nounset>})
    (C {<set>} {<-o>} {<pipefail>})
    (C {<set>} {<-o>} {<errexit>})
    (C {<source>} {<'build/common.sh'>})
    (command.ShFunction
      name: replace-print
      body: 
        (BraceGroup
          children: [
            (C {<grep>} {(SQ <'print '>)} 
              (word.BracedTree
                parts: [(word_part.BracedTuple words:[{<osh>} {<core>}]) <'/'> <Id.Lit_Star '*'> <.py>]
              )
            )
          ]
        )
    )
    (command.ShFunction
      name: make-bin-links
      body: 
        (BraceGroup
          children: [
            (C {<mkdir>} {<-p>} {<bin>} {<_bin>})
            (command.ForEach
              iter_name: link
              iter_words: [
                {
                  (DQ 
                    (braced_var_sub
                      token: <Id.VSub_Name OIL_SYMLINKS>
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<ln>} {<-s>} {<-f>} {<--verbose>} {<oil.py>} 
                      {<'bin/'> ($ Id.VSub_DollarName '$link')}
                    )
                  ]
                )
            )
            (command.ForEach
              iter_name: link
              iter_words: [
                {
                  (DQ 
                    (braced_var_sub
                      token: <Id.VSub_Name OIL_SYMLINKS>
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<ln>} {<-s>} {<-f>} {<--verbose>} {<oil.ovm>} 
                      {<'_bin/'> ($ Id.VSub_DollarName '$link')}
                    )
                  ]
                )
            )
            (command.ForEach
              iter_name: link
              iter_words: [
                {
                  (DQ 
                    (braced_var_sub
                      token: <Id.VSub_Name OPY_SYMLINKS>
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<ln>} {<-s>} {<-f>} {<--verbose>} {<opy_.py>} 
                      {<'bin/'> ($ Id.VSub_DollarName '$link')}
                    )
                    (C {<ln>} {<-s>} {<-f>} {<--verbose>} {<opy.ovm>} 
                      {<'_bin/'> ($ Id.VSub_DollarName '$link')}
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: grep-unicode
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [
                {<grep>}
                {<--color> <Id.Lit_Equals '='> (SQ <auto>)}
                {<--perl>}
                {<-n>}
                {(SQ <'[^\\x00-\\x7F]'>)}
                {(DQ ($ Id.VSub_At '$@'))}
              ]
              more_env: [(env_pair name:LC_ALL val:{<C>} spids:[250])]
              do_fork: T
            )
          ]
        )
    )
    (C {(DQ ($ Id.VSub_At '$@'))})
  ]
)