(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEXTDOMAIN)
          op: assign_op.Equal
          rhs: {(git)}
          spids: [19]
        )
      ]
    )
    (C {(export)} {(TEXTDOMAIN)})
    (command.If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$GIT_TEXTDOMAINDIR'))})]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TEXTDOMAINDIR)
                  op: assign_op.Equal
                  rhs: {(DQ ('@@LOCALEDIR@@'))}
                  spids: [39]
                )
              ]
            )
          ]
          spids: [26 36]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:TEXTDOMAINDIR)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_DollarName '$GIT_TEXTDOMAINDIR'))}
              spids: [47]
            )
          ]
        )
      ]
    )
    (C {(export)} {(TEXTDOMAINDIR)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GIT_INTERNAL_GETTEXT_SH_SCHEME)
          op: assign_op.Equal
          rhs: {(fallthrough)}
          spids: [62]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-n)} {(DQ ('@@USE_GETTEXT_SCHEME@@'))})]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:GIT_INTERNAL_GETTEXT_SH_SCHEME)
                  op: assign_op.Equal
                  rhs: {(DQ ('@@USE_GETTEXT_SCHEME@@'))}
                  spids: [78]
                )
              ]
            )
          ]
          spids: [65 75]
        )
        (if_arm
          cond: [
            (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS'))})
          ]
          action: [(C {(Id.Lit_Other ':')} {(no)} {(probing)} {(necessary)})]
          spids: [83 93]
        )
        (if_arm
          cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$GIT_GETTEXT_POISON'))})]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:GIT_INTERNAL_GETTEXT_SH_SCHEME)
                  op: assign_op.Equal
                  rhs: {(poison)}
                  spids: [117]
                )
              ]
            )
          ]
          spids: [104 114]
        )
        (if_arm
          cond: [
            (command.Simple
              words: [{(type)} {(gettext.sh)}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:126)
                  fd: -1
                  arg_word: {(/dev/null)}
                )
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:129)
                  fd: 2
                  arg_word: {(1)}
                )
              ]
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:GIT_INTERNAL_GETTEXT_SH_SCHEME)
                  op: assign_op.Equal
                  rhs: {(gnu)}
                  spids: [139]
                )
              ]
            )
          ]
          spids: [120 132]
        )
        (if_arm
          cond: [
            (C {(test)} 
              {
                (DQ 
                  (command_sub
                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:147)
                    command_list: 
                      (command.CommandList
                        children: [
                          (command.Simple
                            words: [{(gettext)} {(-h)}]
                            redirects: [
                              (redir.Redir
                                op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:152)
                                fd: 2
                                arg_word: {(1)}
                              )
                            ]
                          )
                        ]
                      )
                  )
                )
              } {(Id.Lit_Equals '=')} {(DQ (-h))}
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:GIT_INTERNAL_GETTEXT_SH_SCHEME)
                  op: assign_op.Equal
                  rhs: {(gettext_without_eval_gettext)}
                  spids: [178]
                )
              ]
            )
          ]
          spids: [142 163]
        )
      ]
    )
    (C {(export)} {(GIT_INTERNAL_GETTEXT_SH_SCHEME)})
    (command.Case
      to_match: {(DQ ($ Id.VSub_DollarName '$GIT_INTERNAL_GETTEXT_SH_SCHEME'))}
      arms: [
        (case_arm
          pat_list: [{(gnu)}]
          action: [(C {(.)} {(gettext.sh)})]
          spids: [199 200 212 -1]
        )
        (case_arm
          pat_list: [{(gettext_without_eval_gettext)}]
          action: [
            (command.ShFunction
              name: eval_gettext
              body: 
                (command.BraceGroup
                  children: [
                    (command.Pipeline
                      children: [
                        (C {(gettext)} {(DQ ($ Id.VSub_Number '$1'))})
                        (command.Subshell
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (C {(export)} {(PATH)} 
                                      {
                                        (command_sub
                                          left_token: 
                                            (Token
                                              id: Id.Left_DollarParen
                                              val: '$('
                                              span_id: 245
                                            )
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (C {(git)} {(sh-i18n--envsubst)} {(--variables)} 
                                                  {(DQ ($ Id.VSub_Number '$1'))}
                                                )
                                              ]
                                            )
                                        )
                                      }
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:256)
                                )
                                (C {(git)} {(sh-i18n--envsubst)} {(DQ ($ Id.VSub_Number '$1'))})
                              ]
                            )
                        )
                      ]
                      negated: F
                    )
                  ]
                )
            )
            (command.ShFunction
              name: eval_ngettext
              body: 
                (command.BraceGroup
                  children: [
                    (command.Pipeline
                      children: [
                        (C {(ngettext)} {(DQ ($ Id.VSub_Number '$1'))} {(DQ ($ Id.VSub_Number '$2'))} 
                          {(DQ ($ Id.VSub_Number '$3'))}
                        )
                        (command.Subshell
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (C {(export)} {(PATH)} 
                                      {
                                        (command_sub
                                          left_token: 
                                            (Token
                                              id: Id.Left_DollarParen
                                              val: '$('
                                              span_id: 306
                                            )
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (C {(git)} {(sh-i18n--envsubst)} {(--variables)} 
                                                  {(DQ ($ Id.VSub_Number '$2'))}
                                                )
                                              ]
                                            )
                                        )
                                      }
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:317)
                                )
                                (C {(git)} {(sh-i18n--envsubst)} {(DQ ($ Id.VSub_Number '$2'))})
                              ]
                            )
                        )
                      ]
                      negated: F
                    )
                  ]
                )
            )
          ]
          spids: [214 215 335 -1]
        )
        (case_arm
          pat_list: [{(poison)}]
          action: [
            (command.ShFunction
              name: gettext
              body: 
                (command.BraceGroup
                  children: [(C {(printf)} {(DQ ('%s'))} {(DQ ('# GETTEXT POISON #'))})]
                )
            )
            (command.ShFunction
              name: eval_gettext
              body: 
                (command.BraceGroup
                  children: [(C {(printf)} {(DQ ('%s'))} {(DQ ('# GETTEXT POISON #'))})]
                )
            )
            (command.ShFunction
              name: eval_ngettext
              body: 
                (command.BraceGroup
                  children: [(C {(printf)} {(DQ ('%s'))} {(DQ ('# GETTEXT POISON #'))})]
                )
            )
          ]
          spids: [337 338 417 -1]
        )
        (case_arm
          pat_list: [{(Id.Lit_Star '*')}]
          action: [
            (command.ShFunction
              name: gettext
              body: 
                (command.BraceGroup
                  children: [(C {(printf)} {(DQ ('%s'))} {(DQ ($ Id.VSub_Number '$1'))})]
                )
            )
            (command.ShFunction
              name: eval_gettext
              body: 
                (command.BraceGroup
                  children: [
                    (command.Pipeline
                      children: [
                        (C {(printf)} {(DQ ('%s'))} {(DQ ($ Id.VSub_Number '$1'))})
                        (command.Subshell
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (C {(export)} {(PATH)} 
                                      {
                                        (command_sub
                                          left_token: 
                                            (Token
                                              id: Id.Left_DollarParen
                                              val: '$('
                                              span_id: 473
                                            )
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (C {(git)} {(sh-i18n--envsubst)} {(--variables)} 
                                                  {(DQ ($ Id.VSub_Number '$1'))}
                                                )
                                              ]
                                            )
                                        )
                                      }
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:484)
                                )
                                (C {(git)} {(sh-i18n--envsubst)} {(DQ ($ Id.VSub_Number '$1'))})
                              ]
                            )
                        )
                      ]
                      negated: F
                    )
                  ]
                )
            )
            (command.ShFunction
              name: eval_ngettext
              body: 
                (command.BraceGroup
                  children: [
                    (command.Pipeline
                      children: [
                        (command.Subshell
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.AndOr
                                  ops: [Id.Op_DAmp Id.Op_DPipe]
                                  children: [
                                    (C {(test)} {(DQ ($ Id.VSub_Number '$3'))} {(Id.Lit_Equals '=')} 
                                      {(1)}
                                    )
                                    (C {(printf)} {(DQ ('%s'))} {(DQ ($ Id.VSub_Number '$1'))})
                                    (C {(printf)} {(DQ ('%s'))} {(DQ ($ Id.VSub_Number '$2'))})
                                  ]
                                )
                              ]
                            )
                        )
                        (command.Subshell
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Sentence
                                  child: 
                                    (C {(export)} {(PATH)} 
                                      {
                                        (command_sub
                                          left_token: 
                                            (Token
                                              id: Id.Left_DollarParen
                                              val: '$('
                                              span_id: 556
                                            )
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (C {(git)} {(sh-i18n--envsubst)} {(--variables)} 
                                                  {(DQ ($ Id.VSub_Number '$2'))}
                                                )
                                              ]
                                            )
                                        )
                                      }
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:567)
                                )
                                (C {(git)} {(sh-i18n--envsubst)} {(DQ ($ Id.VSub_Number '$2'))})
                              ]
                            )
                        )
                      ]
                      negated: F
                    )
                  ]
                )
            )
          ]
          spids: [419 420 585 -1]
        )
      ]
    )
    (command.ShFunction
      name: gettextln
      body: 
        (command.BraceGroup
          children: [(C {(gettext)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(echo)})]
        )
    )
    (command.ShFunction
      name: eval_gettextln
      body: 
        (command.BraceGroup
          children: [(C {(eval_gettext)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(echo)})]
        )
    )
  ]
)