(command.CommandList
  children: [
    (command.ShFunction
      name: die
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [{<echo>} {(DQ <'FATAL install error: '> ($ Id.VSub_At '@'))}]
              redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: main
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [(C {<.>} {<'_build/detected-config.sh'>})]
                              negated: T
                              stderr_indices: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<die>} {(DQ <'Can\'t find _build/detected-config.h.  Run \'./configure\''>)})
                  ]
                  spids: [65 74]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<local>} {<Id.Lit_VarLike 'exec_filename='> <oil.ovm>})
            (C {<local>} 
              {<Id.Lit_VarLike 'dest='> ($ Id.VSub_DollarName PREFIX) <'/bin/'> 
                ($ Id.VSub_DollarName exec_filename)
              }
            )
            (C {<echo>} {(DQ <'Installing to '> ($ Id.VSub_DollarName dest))})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<install>} {<'_bin/'> ($ Id.VSub_DollarName exec_filename)} 
                                  {($ Id.VSub_DollarName dest)}
                                )
                              ]
                              negated: T
                              stderr_indices: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<die>} {(DQ <'Couldn\'t install oil binary'>)})]
                  spids: [124 136]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<cd>} {($ Id.VSub_DollarName PREFIX) <'/bin'>})
            (command.ForEach
              iter_names: [link]
              iterable: (for_iter.Words words:[{<osh>} {<oshc>}])
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<ln>} {<-s>} {<-f>} {($ Id.VSub_DollarName exec_filename)} 
                                          {($ Id.VSub_DollarName link)}
                                        )
                                      ]
                                      negated: T
                                      stderr_indices: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<die>} 
                              {(DQ <'Couldn\'t create '> ($ Id.VSub_DollarName link) <' symlink'>)}
                            )
                          ]
                          spids: [170 185]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (C {<main>} {(DQ ($ Id.VSub_At '@'))})
  ]
)