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