(CommandList
  children: [
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:file)
          op: Equal
          rhs: {(DQ ($ VSub_Number "$1"))}
          spids: [74]
        )
      ]
      spids: [72]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:name)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(basename)} {(DQ ($ VSub_Number "$1"))})])
                  left_token: <Left_CommandSub "$(">
                  spids: [83 89]
                )
              )
            }
          spids: [81]
        )
      ]
      spids: [79]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:dir)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(dirname)} {(DQ ($ VSub_Number "$1"))})])
                  left_token: <Left_CommandSub "$(">
                  spids: [96 102]
                )
              )
            }
          spids: [94]
        )
      ]
      spids: [92]
    )
    (Case
      to_match: {($ VSub_Name "$file")}
      arms: [
        (case_arm
          pat_list: [
            {(AUTHORS)}
            {(CONTRIBUTORS)}
            {(WORKSPACE)}
            {(third_party/) (Lit_Other "*")}
            {(tools/) (Lit_Other "*")}
            {(Lit_Other "*") (.md)}
            {(BUILD)}
            {(Lit_Other "*") (/BUILD)}
            {(Lit_Other "*") (/testdata/) (Lit_Other "*")}
            {(Lit_Other "*") (.yaml)}
            {(Lit_Other "*") (.json)}
            {(Lit_Other "*") (.html)}
            {(Lit_Other "*") (.pb.go)}
            {(.arclint)}
            {(.gitignore)}
            {(Lit_Other "*") (/.gitignore)}
            {(.arcconfig)}
            {(Lit_Other "*") (/__phutil_) (Lit_Other "*")}
            {(Lit_Other "*") (.bzl)}
            {(.kythe)}
            {(kythe/web/site/) (Lit_Other "*")}
          ]
          spids: [113 169 172 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*") (.sh)} {(Lit_Other "*") (.bash)}]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(command)} {(-v)} {(shellcheck)})
                      terminator: <Op_Amp "&">
                    )
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (SimpleCommand
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: -1
                                  arg_word: {(/dev/null)}
                                  spids: [195]
                                )
                              ]
                            )
                            (C {(command)} {(-v)} {(jq)})
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Amp "&">
                    )
                    (Sentence
                      child: 
                        (SimpleCommand
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(/dev/null)}
                              spids: [207]
                            )
                          ]
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (C {(shellcheck)} {(-f)} {(json)} {(DQ ($ VSub_Name "$file"))})
                        (C {(jq)} {(-r)} 
                          {
                            (SQ 
                              <
".[] | \"shellcheck::\" + (if .level == \"info\" then \"advice\" else .level end) + \":\" + (.line | tostring) + \" \" + .message"
                              >
                            )
                          }
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [-1 211]
                )
              ]
              spids: [-1 237]
            )
          ]
          spids: [178 183 239 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (C {(grep)} {(-q)} 
                              {(SQ <"Copyright 201[4-9] Google Inc. All rights reserved.">)} {(DQ ($ VSub_Name "$file"))}
                            )
                          ]
                          negated: True
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(SQ <"copyright header::error:1 File missing copyright header">)})
                  ]
                  spids: [-1 263]
                )
              ]
              spids: [-1 273]
            )
          ]
          spids: [242 243 275 -1]
        )
      ]
      spids: [106 110 277]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(grep)} {(-q)} {(Lit_Other "[") (A-Z) (Lit_Other "]")}]
                  redirects: [
                    (Redir
                      op_id: Redir_TLess
                      fd: -1
                      arg_word: {(DQ ($ VSub_Name "$dir"))}
                      spids: [293]
                    )
                  ]
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ("case-insensitivity::error:1 ") ($ VSub_Name "$dir") 
                  (" directory contains an uppercase letter")
                )
              }
            )
          ]
          spids: [-1 299]
        )
      ]
      spids: [-1 310]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_gt
                      left: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(find)} {(DQ ($ VSub_Name "$dir"))} {(-maxdepth)} {(0)} 
                                        {(-iname)} {(DQ ($ VSub_Name "$name"))}
                                      )
                                      (C {(wc)} {(-l)})
                                    ]
                                    negated: False
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub "$(">
                            spids: [316 338]
                          )
                        }
                      right: {(1)}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ("case-insensitivity::error:1 ") ($ VSub_Name "$name") 
                  (" filename clashes on case-insensitive file systems")
                )
              }
            )
          ]
          spids: [-1 347]
        )
      ]
      spids: [-1 358]
    )
  ]
)