(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-e)})
    (C {(cd)} 
      {
        (DQ 
          (command_sub
            left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:23)
            command_list: 
              (command.CommandList
                children: [(C {(dirname)} {(DQ ($ Id.VSub_Number '$0'))})]
              )
          )
        ) (/..)
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:shashort)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:38)
                command_list: 
                  (command.CommandList
                    children: [(C {(git)} {(rev-parse)} {(--short) (Id.Lit_Equals '=') (10)} {(HEAD)})]
                  )
              )
            }
          spids: [37]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:tag)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:51)
                command_list: 
                  (command.CommandList
                    children: [(C {(git)} {(tag)} {(--points-at)} {($ Id.VSub_DollarName '$shashort')})]
                  )
              )
            }
          spids: [50]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$tag'))} 
                  {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:72)
            )
          ]
          action: [
            (command.Simple
              words: [
                {(echo)}
                {(DQ ('error: this script must be run with a tagged commit checked out'))}
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:83)
                  fd: -1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:87)
              arg_word: {(1)}
            )
          ]
          spids: [61 74]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:version)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:94)
                command_list: (command.CommandList children:[(C {(cat)} {(VERSION)})])
              )
            }
          spids: [93]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:majmin)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:101)
                command_list: 
                  (command.CommandList
                    children: [(C {(cut)} {(-d.)} {(-f1-2)} {(VERSION)})]
                  )
              )
            }
          spids: [100]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:majminpatch)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:115)
                command_list: 
                  (command.CommandList
                    children: [(C {(cut)} {(-d-)} {(-f1)} {(VERSION)})]
                  )
              )
            }
          spids: [114]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$tag'))} 
                  {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (v) ($ Id.VSub_DollarName '$version'))} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:142)
            )
          ]
          action: [
            (command.Simple
              words: [{(echo)} {(DQ ('error: tagged commit does not match content of VERSION file'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:153)
                  fd: -1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:157)
              arg_word: {(1)}
            )
          ]
          spids: [125 144]
        )
      ]
    )
    (C {(git)} {(clone)} {(https) (Id.Lit_Other ':') (//github.com/JuliaLang/julia)} {(-b)} 
      {($ Id.VSub_DollarName '$tag')} {(julia-) ($ Id.VSub_DollarName '$version')}
    )
    (C {(cd)} {(julia-) ($ Id.VSub_DollarName '$version')})
    (C {(make)} {(full-source-dist)})
    (C {(make)} {(light-source-dist)})
    (C {(mv)} 
      {(julia-) (${ Id.VSub_Name version) (_) ($ Id.VSub_DollarName '$shashort') (-full.tar.gz)} {(../julia-) ($ Id.VSub_DollarName '$version') (-full.tar.gz)}
    )
    (C {(mv)} {(julia-) (${ Id.VSub_Name version) (_) ($ Id.VSub_DollarName '$shashort') (.tar.gz)} 
      {(../julia-) ($ Id.VSub_DollarName '$version') (.tar.gz)}
    )
    (C {(cd)} {(..)})
    (C {(rm)} {(-rf)} {(julia-) ($ Id.VSub_DollarName '$version')})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:julianightlies)
          op: assign_op.Equal
          rhs: {(DQ ('https://julialangnightlies-s3.julialang.org/bin'))}
          spids: [241]
        )
      ]
    )
    (C {(curl)} {(-L)} {(-o)} {(julia-) ($ Id.VSub_DollarName '$version') (-linux-x86_64.tar.gz)} 
      {($ Id.VSub_DollarName '$julianightlies') (/linux/x64/) ($ Id.VSub_DollarName '$majmin') 
        (/julia-) ($ Id.VSub_DollarName '$majminpatch') (-) ($ Id.VSub_DollarName '$shashort') (-linux64.tar.gz)
      }
    )
    (C {(cp)} {(julia-) ($ Id.VSub_DollarName '$version') (-linux-x86_64.tar.gz)} 
      {(julia-) ($ Id.VSub_DollarName '$majmin') (-latest-linux-x86_64.tar.gz)}
    )
    (C {(curl)} {(-L)} {(-o)} {(julia-) ($ Id.VSub_DollarName '$version') (-linux-i686.tar.gz)} 
      {($ Id.VSub_DollarName '$julianightlies') (/linux/x86/) ($ Id.VSub_DollarName '$majmin') 
        (/julia-) ($ Id.VSub_DollarName '$majminpatch') (-) ($ Id.VSub_DollarName '$shashort') (-linux32.tar.gz)
      }
    )
    (C {(cp)} {(julia-) ($ Id.VSub_DollarName '$version') (-linux-i686.tar.gz)} 
      {(julia-) ($ Id.VSub_DollarName '$majmin') (-latest-linux-i686.tar.gz)}
    )
    (C {(curl)} {(-L)} {(-o)} {(julia-) ($ Id.VSub_DollarName '$version') (-linux-arm.tar.gz)} 
      {($ Id.VSub_DollarName '$julianightlies') (/linux/arm/) ($ Id.VSub_DollarName '$majmin') 
        (/julia-) ($ Id.VSub_DollarName '$majminpatch') (-) ($ Id.VSub_DollarName '$shashort') (-linuxarm.tar.gz)
      }
    )
    (C {(cp)} {(julia-) ($ Id.VSub_DollarName '$version') (-linux-arm.tar.gz)} 
      {(julia-) ($ Id.VSub_DollarName '$majmin') (-latest-linux-arm.tar.gz)}
    )
    (C {(curl)} {(-L)} {(-o)} {(julia-) ($ Id.VSub_DollarName '$version') (-linux-ppc64le.tar.gz)} 
      {($ Id.VSub_DollarName '$julianightlies') (/linux/ppc64le/) ($ Id.VSub_DollarName '$majmin') 
        (/julia-) ($ Id.VSub_DollarName '$majminpatch') (-) ($ Id.VSub_DollarName '$shashort') (-linuxppc64.tar.gz)
      }
    )
    (C {(cp)} {(julia-) ($ Id.VSub_DollarName '$version') (-linux-ppc64le.tar.gz)} 
      {(julia-) ($ Id.VSub_DollarName '$majmin') (-latest-linux-ppc64le.tar.gz)}
    )
    (C {(curl)} {(-L)} {(-o)} {(DQ (julia-) ($ Id.VSub_DollarName '$version') ('-osx10.7 .dmg'))} 
      {($ Id.VSub_DollarName '$julianightlies') (/osx/x64/) ($ Id.VSub_DollarName '$majmin') (/julia-) 
        ($ Id.VSub_DollarName '$majminpatch') (-) ($ Id.VSub_DollarName '$shashort') (-osx.dmg)
      }
    )
    (C {(cp)} {(DQ (julia-) ($ Id.VSub_DollarName '$version') ('-osx10.7 .dmg'))} 
      {(DQ (julia-) ($ Id.VSub_DollarName '$majmin') ('-latest-osx10.7 .dmg'))}
    )
    (C {(curl)} {(-L)} {(-o)} {(julia-) ($ Id.VSub_DollarName '$version') (-win64.exe)} 
      {($ Id.VSub_DollarName '$julianightlies') (/winnt/x64/) ($ Id.VSub_DollarName '$majmin') 
        (/julia-) ($ Id.VSub_DollarName '$majminpatch') (-) ($ Id.VSub_DollarName '$shashort') (-win64.exe)
      }
    )
    (C {(cp)} {(julia-) ($ Id.VSub_DollarName '$version') (-win64.exe)} 
      {(julia-) ($ Id.VSub_DollarName '$majmin') (-latest-win64.exe)}
    )
    (C {(curl)} {(-L)} {(-o)} {(julia-) ($ Id.VSub_DollarName '$version') (-win32.exe)} 
      {($ Id.VSub_DollarName '$julianightlies') (/winnt/x86/) ($ Id.VSub_DollarName '$majmin') 
        (/julia-) ($ Id.VSub_DollarName '$majminpatch') (-) ($ Id.VSub_DollarName '$shashort') (-win32.exe)
      }
    )
    (C {(cp)} {(julia-) ($ Id.VSub_DollarName '$version') (-win32.exe)} 
      {(julia-) ($ Id.VSub_DollarName '$majmin') (-latest-win32.exe)}
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Id.Lit_LBracket '[')} {(-e)} {(codesign.sh)} {(Id.Lit_RBracket ']')})
              terminator: (Token id:Id.Op_Semi val:';' span_id:479)
            )
          ]
          action: [(C {(./codesign.sh)})]
          spids: [470 481]
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {(shasum)} {(-a)} {(256)} {(julia-) ($ Id.VSub_DollarName '$version') (Id.Lit_Star '*')})
        (command.Simple
          words: [{(grep)} {(-v)} {(-e)} {(sha256)} {(-e)} {(md5)} {(-e)} {(asc)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:525)
              fd: -1
              arg_word: {(julia-) ($ Id.VSub_DollarName '$version') (.sha256)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Pipeline
      children: [
        (C {(md5sum)} {(julia-) ($ Id.VSub_DollarName '$version') (Id.Lit_Star '*')})
        (command.Simple
          words: [{(grep)} {(-v)} {(-e)} {(sha256)} {(-e)} {(md5)} {(-e)} {(asc)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:555)
              fd: -1
              arg_word: {(julia-) ($ Id.VSub_DollarName '$version') (.md5)}
            )
          ]
        )
      ]
      negated: F
    )
    (C {(gpg)} {(-u)} {(julia)} {(--armor)} {(--detach-sig)} 
      {(julia-) ($ Id.VSub_DollarName '$version') (-full.tar.gz)}
    )
    (C {(gpg)} {(-u)} {(julia)} {(--armor)} {(--detach-sig)} 
      {(julia-) ($ Id.VSub_DollarName '$version') (.tar.gz)}
    )
    (C {(gpg)} {(-u)} {(julia)} {(--armor)} {(--detach-sig)} 
      {(julia-) ($ Id.VSub_DollarName '$version') (-linux-x86_64.tar.gz)}
    )
    (C {(gpg)} {(-u)} {(julia)} {(--armor)} {(--detach-sig)} 
      {(julia-) ($ Id.VSub_DollarName '$version') (-linux-i686.tar.gz)}
    )
    (C {(gpg)} {(-u)} {(julia)} {(--armor)} {(--detach-sig)} 
      {(julia-) ($ Id.VSub_DollarName '$version') (-linux-arm.tar.gz)}
    )
    (C {(gpg)} {(-u)} {(julia)} {(--armor)} {(--detach-sig)} 
      {(julia-) ($ Id.VSub_DollarName '$version') (-linux-ppc64le.tar.gz)}
    )
    (C {(aws)} {(configure)})
    (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} 
      {(julia-) ($ Id.VSub_DollarName '$version') (.sha256)} {(s3) (Id.Lit_Other ':') (//julialang/bin/checksums/)}
    )
    (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} {(julia-) ($ Id.VSub_DollarName '$version') (.md5)} 
      {(s3) (Id.Lit_Other ':') (//julialang/bin/checksums/)}
    )
    (command.ForEach
      iter_name: plat
      iter_words: [{(x86_64)} {(i686)} {(arm)} {(ppc64le)}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:platshort)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:706)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(echo)} {($ Id.VSub_DollarName '$plat')})
                                  (C {(sed)} {(-e)} 
                                    {(SQ (Token id:Id.Lit_Chars val:s/x86_64/x64/ span_id:718))} {(-e)} {(SQ (Token id:Id.Lit_Chars val:s/i686/x86/ span_id:724))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [705]
                )
              ]
            )
            (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} 
              {(julia-) ($ Id.VSub_DollarName '$version') (-linux-) ($ Id.VSub_DollarName '$plat') 
                (.tar.gz)
              } 
              {(s3) (Id.Lit_Other ':') (//julialang/bin/linux/) ($ Id.VSub_DollarName '$platshort') (/) 
                ($ Id.VSub_DollarName '$majmin') (/)
              }
            )
            (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} 
              {(julia-) ($ Id.VSub_DollarName '$version') (-linux-) ($ Id.VSub_DollarName '$plat') 
                (.tar.gz.asc)
              } 
              {(s3) (Id.Lit_Other ':') (//julialang/bin/linux/) ($ Id.VSub_DollarName '$platshort') (/) 
                ($ Id.VSub_DollarName '$majmin') (/)
              }
            )
            (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} 
              {(julia-) ($ Id.VSub_DollarName '$majmin') (-latest-linux-) 
                ($ Id.VSub_DollarName '$plat') (.tar.gz)
              } 
              {(s3) (Id.Lit_Other ':') (//julialang/bin/linux/) ($ Id.VSub_DollarName '$platshort') (/) 
                ($ Id.VSub_DollarName '$majmin') (/)
              }
            )
            (C {(curl)} {(-X)} {(PURGE)} {(-L)} 
              {
                (DQ ('https://julialang-s3.julialang.org/bin/linux/') 
                  ($ Id.VSub_DollarName '$platshort') (/) ($ Id.VSub_DollarName '$majmin') (/julia-) ($ Id.VSub_DollarName '$majmin') (-latest-linux-) 
                  ($ Id.VSub_DollarName '$plat') (.tar.gz)
                )
              }
            )
          ]
        )
    )
    (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} 
      {(DQ (julia-) ($ Id.VSub_DollarName '$version') ('-osx10.7 .dmg'))} {(s3) (Id.Lit_Other ':') (//julialang/bin/osx/x64/) ($ Id.VSub_DollarName '$majmin') (/)}
    )
    (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} 
      {(DQ (julia-) ($ Id.VSub_DollarName '$majmin') ('-latest-osx10.7 .dmg'))} {(s3) (Id.Lit_Other ':') (//julialang/bin/osx/x64/) ($ Id.VSub_DollarName '$majmin') (/)}
    )
    (C {(curl)} {(-X)} {(PURGE)} {(-L)} 
      {
        (DQ ('https://julialang-s3.julialang.org/bin/osx/x64/') ($ Id.VSub_DollarName '$majmin') 
          (/julia-) ($ Id.VSub_DollarName '$majmin') ('-latest-osx10.7 .dmg')
        )
      }
    )
    (C {(curl)} {(-X)} {(PURGE)} {(-L)} 
      {
        (DQ ('https://julialang-s3.julialang.org/bin/osx/x64/') ($ Id.VSub_DollarName '$majmin') 
          (/julia-) ($ Id.VSub_DollarName '$majmin') ('-latest-osx10.7+.dmg')
        )
      }
    )
    (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} 
      {(DQ (julia-) ($ Id.VSub_DollarName '$version') (-win64.exe))} {(s3) (Id.Lit_Other ':') (//julialang/bin/winnt/x64/) ($ Id.VSub_DollarName '$majmin') (/)}
    )
    (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} 
      {(DQ (julia-) ($ Id.VSub_DollarName '$majmin') (-latest-win64.exe))} {(s3) (Id.Lit_Other ':') (//julialang/bin/winnt/x64/) ($ Id.VSub_DollarName '$majmin') (/)}
    )
    (C {(curl)} {(-X)} {(PURGE)} {(-L)} 
      {
        (DQ ('https://julialang-s3.julialang.org/bin/winnt/x64/') ($ Id.VSub_DollarName '$majmin') 
          (/julia-) ($ Id.VSub_DollarName '$majmin') (-latest-win64.exe)
        )
      }
    )
    (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} 
      {(DQ (julia-) ($ Id.VSub_DollarName '$version') (-win32.exe))} {(s3) (Id.Lit_Other ':') (//julialang/bin/winnt/x86/) ($ Id.VSub_DollarName '$majmin') (/)}
    )
    (C {(aws)} {(s3)} {(cp)} {(--acl)} {(public-read)} 
      {(DQ (julia-) ($ Id.VSub_DollarName '$majmin') (-latest-win32.exe))} {(s3) (Id.Lit_Other ':') (//julialang/bin/winnt/x86/) ($ Id.VSub_DollarName '$majmin') (/)}
    )
    (C {(curl)} {(-X)} {(PURGE)} {(-L)} 
      {
        (DQ ('https://julialang-s3.julialang.org/bin/winnt/x86/') ($ Id.VSub_DollarName '$majmin') 
          (/julia-) ($ Id.VSub_DollarName '$majmin') (-latest-win32.exe)
        )
      }
    )
    (C {(echo)} {(DQ ('All files prepared. Attach julia-') ($ Id.VSub_DollarName '$version') (.tar.gz))})
    (C {(echo)} 
      {(DQ ('and julia-') ($ Id.VSub_DollarName '$version') ('-full.tar.gz to github releases.'))}
    )
  ]
)