(command.CommandList
  children: [
    (command.ShFunction
      name: add_dependency_override
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'name='> ($ Id.VSub_Number '$1')})
            (C {<local>} {<Id.Lit_VarLike 'path='> ($ Id.VSub_Number '$2')})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<cat>} {<pubspec.yaml>})
                                (C {<grep>} {(DQ <'dependency_overrides:'>)})
                              ]
                              negated: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {(DQ <'dependency_overrides:'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<pubspec.yaml>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [25 43]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'pubspec='> 
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<cat>} {<pubspec.yaml>})
                        (C {<grep>} {<-v>} {(DQ ($ Id.VSub_DollarName '$name') <': .path: '>)})
                      ]
                      negated: F
                    )
                )
              }
            )
            (command.Simple
              words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$pubspec'))}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<pubspec.yaml>})]
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(DQ ($ Id.VSub_DollarName '$path'))}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {
                          (DQ <'  '> ($ Id.VSub_DollarName '$name') <': {path: '> 
                            ($ Id.VSub_DollarName '$path') <'}'>
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<pubspec.yaml>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [94 107]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: checkout_dependency_override_from_github
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'dependency_name='> ($ Id.VSub_Number '$1')})
            (C {<local>} {<Id.Lit_VarLike 'org_project='> ($ Id.VSub_Number '$2')})
            (C {<local>} {<Id.Lit_VarLike 'branch='> ($ Id.VSub_Number '$3')})
            (C {<local>} 
              {<Id.Lit_VarLike 'path='> 
                (braced_var_sub
                  token: <Id.VSub_Number 4>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VTest_ColonHyphen ':-'>
                      arg_word: {<Id.Lit_Slash '/'>}
                    )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'url='> <https> <Id.Lit_Colon ':'> <'//github.com/'> 
                ($ Id.VSub_DollarName '$org_project')
              }
            )
            (C {<echo>} 
              {
                (DQ <'** Checking out '> ($ Id.VSub_DollarName '$dependency_name') <' override from '> 
                  ($ Id.VSub_DollarName '$url') ($ Id.VSub_DollarName '$path') <'#'> ($ Id.VSub_DollarName '$branch')
                )
              }
            )
            (C {<Id.Lit_Colon ':'>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Name TMPDIR>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonEquals ':='> arg_word:{(DQ <'/tmp'>)})
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'dep_dir='> ($ Id.VSub_DollarName '$TMPDIR') <'/dependency_overrides/'> 
                ($ Id.VSub_DollarName '$dependency_name')
              }
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Unary
                      op_id: Id.BoolUnary_d
                      child: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: (C {<dirname>} {($ Id.VSub_DollarName '$dep_dir')})
                          )
                        }
                    )
                )
                (C {<mkdir>} 
                  {
                    (command_sub
                      left_token: <Id.Left_Backtick '`'>
                      child: (C {<dirname>} {($ Id.VSub_DollarName '$dep_dir')})
                    )
                  }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_d
                                  child: {($ Id.VSub_DollarName '$dep_dir')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Subshell
                      child: 
                        (command.CommandList
                          children: [
                            (C {<cd>} {($ Id.VSub_DollarName '$dep_dir')})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<git>} {<status>} {<-s>})
                                                (C {<grep>} {<.>})
                                              ]
                                              negated: F
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<echo>} 
                                      {
                                        (DQ <'Found local modifications in '> 
                                          ($ Id.VSub_DollarName '$dep_dir') <': aborting'>
                                        )
                                      }
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [266 282]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (C {<rm>} {<-fR>} {($ Id.VSub_DollarName '$dep_dir')})
                  ]
                  spids: [240 251]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {(DQ ($ Id.VSub_DollarName '$path'))}
                                  right: {(DQ <'/'>)}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<git>} {<clone>} {<--depth>} {<1>} {<--branch>} {($ Id.VSub_DollarName '$branch')} 
                      {($ Id.VSub_DollarName '$url')} {($ Id.VSub_DollarName '$dep_dir')}
                    )
                  ]
                  spids: [316 333]
                )
              ]
              else_action: [
                (command.Subshell
                  child: 
                    (command.CommandList
                      children: [
                        (C {<mkdir>} {($ Id.VSub_DollarName '$dep_dir')})
                        (C {<cd>} {($ Id.VSub_DollarName '$dep_dir')})
                        (C {<git>} {<init>})
                        (C {<git>} {<remote>} {<add>} {<origin>} {($ Id.VSub_DollarName '$url')})
                        (C {<git>} {<config>} {<core.sparsecheckout>} {<true>})
                        (command.Simple
                          words: [{<echo>} {($ Id.VSub_DollarName '$path')}]
                          redirects: [
                            (redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'.git/info/sparse-checkout'>}
                            )
                          ]
                          do_fork: T
                        )
                        (C {<git>} {<pull>} {<--depth> <Id.Lit_Equals '='> <1>} {<origin>} 
                          {($ Id.VSub_DollarName '$branch')}
                        )
                      ]
                    )
                )
              ]
            )
            (C {<add_dependency_override>} {($ Id.VSub_DollarName '$dependency_name')} 
              {($ Id.VSub_DollarName '$dep_dir') ($ Id.VSub_DollarName '$path')}
            )
          ]
        )
    )
  ]
)