(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {(DQ <inotify-tools-inc>)}
          spids: [6]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_realname)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (braced_var_sub
                  token: <Id.VSub_Name pkgname>
                  suffix_op: 
                    (suffix_op.Unary
                      tok: <Id.VOp1_Percent '%'>
                      arg_word: {<Id.Lit_Other '*'> <-inc>}
                    )
                )
              )
            }
          spids: [11]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {<3.14>}
          spids: [21]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [24]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ <'inotify-tools patched to add --include regex'>)}
          spids: [27]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ <'http://github.com/rvoicilas/inotify-tools'>)}
          spids: [32]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ <all>)}
          spids: [37]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ <GPL2>)}
          spids: [42]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ <'!inotify-tools'>)}
          spids: [47]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$pkgname') <'-dev '> ($ Id.VSub_DollarName '$pkgname') <-doc>)
            }
          spids: [52]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'https://github.com/downloads/rvoicilas/'> ($ Id.VSub_DollarName '$_realname') <'/'> 
                ($ Id.VSub_DollarName '$_realname') <-> ($ Id.VSub_DollarName '$pkgver') <'.tar.gz\n'> <'\tadd-include-regex.patch\n'> <'\t'>
              )
            }
          spids: [60]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:builddir)
          op: assign_op.Equal
          rhs: 
            {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> ($ Id.VSub_DollarName '$_realname') <-> 
              ($ Id.VSub_DollarName '$pkgver')
            }
          spids: [74]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<default_prepare>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<update_config_guess>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<'./configure'>} {<--prefix> <Id.Lit_Equals '='> <'/usr'>} 
                  {<--sysconfdir> <Id.Lit_Equals '='> <'/etc'>} {<--mandir> <Id.Lit_Equals '='> <'/usr/share/man'>} 
                  {<--infodir> <Id.Lit_Equals '='> <'/usr/share/info'>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<make>})
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (BraceGroup
          children: [
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<make>} {<Id.Lit_VarLike 'DESTDIR='> (DQ ($ Id.VSub_DollarName '$pkgdir'))} 
                  {<install>}
                )
                (command.ControlFlow
                  token: <Id.ControlFlow_Return return>
                  arg_word: {<1>}
                )
              ]
            )
            (C {<mkdir>} {<-p>} 
              {
                (DQ ($ Id.VSub_DollarName '$pkgdir') <'/usr/share/doc/'> 
                  ($ Id.VSub_DollarName '$pkgname')
                )
              }
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName '$pkgdir') <'/usr/share/doc/'> 
                      ($ Id.VSub_DollarName '$pkgname') <'/example.sh'>
                    }
                )
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 248
                      stdin_parts: [
                        <'#!/bin/sh\n'>
                        <'## watch for a specific file recursively ##\n'>
                        <'inotifywait -mr -e modify /path/to/watch --include='>
                        <Id.Right_DoubleQuote '"'>
                        <'(my.file)'>
                        <Id.Lit_Dollar '$'>
                        <Id.Right_DoubleQuote '"'>
                        <' |\n'>
                        <'while read path action file; do\n'>
                        <'\techo '>
                        <Id.Right_DoubleQuote '"'>
                        <'The file \''>
                        ($ Id.VSub_DollarName '$file')
                        <'\' appeared in directory \''>
                        ($ Id.VSub_DollarName '$path')
                        <'\' via \''>
                        ($ Id.VSub_DollarName '$action')
                        <'\''>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'done\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:md5sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'b43d95a0fa8c45f8bab3aec9672cf30c  inotify-tools-3.14.tar.gz\n'> 
                <'72f3ffd0d57ddb2b6b38faaa3b751ca8  add-include-regex.patch'>
              )
            }
          spids: [252]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha256sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'222bcca8893d7bf8a1ce207fb39ceead5233b5015623d099392e95197676c92f  inotify-tools-3.14.tar.gz\n'
                > <'5b193b9b5cbd16d4aca9ce843a8493191cbf825598978a2602180fc28d56ffd7  add-include-regex.patch'>
              )
            }
          spids: [258]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'6074d510e89bba5da0d7c4d86f2562c662868666ba0a7ea5d73e53c010a0050dd1fc01959b22cffdb9b8a35bd1b0b43c04d02d6f19927520f05889e8a9297dfb  inotify-tools-3.14.tar.gz\n'
                > 
                <
'b858b79dcfb2967d0c8d31ecbc17f4f36064218d2276fdafcdc6c8e51c9db2645fa102f88f1401b78f79a1b2ddbe400ea3e691bf93d084ecb312a170f69bda24  add-include-regex.patch'
                >
              )
            }
          spids: [264]
        )
      ]
    )
  ]
)