(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (C {<set>} {<-o>} {<pipefail>})
    (C {<export>} {<Id.Lit_VarLike 'DOCKER_PKG='> (SQ <'github.com/docker/docker'>)})
    (C {<export>} 
      {<Id.Lit_VarLike 'SCRIPTDIR='> 
        (DQ 
          (command_sub
            left_token: <Id.Left_DollarParen '$('>
            child: 
              (command.AndOr
                ops: [Id.Op_DAmp]
                children: [
                  (C {<cd>} 
                    {
                      (DQ 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (C {<dirname>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name BASH_SOURCE>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  )
                                )
                              }
                            )
                        )
                      )
                    }
                  )
                  (C {<pwd>})
                ]
              )
          )
        )
      }
    )
    (C {<export>} {<Id.Lit_VarLike 'MAKEDIR='> (DQ ($ Id.VSub_DollarName '$SCRIPTDIR') <'/make'>)})
    (C {<export>} 
      {<Id.Lit_VarLike 'PKG_CONFIG='> 
        (braced_var_sub
          token: <Id.VSub_Name PKG_CONFIG>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<pkg-config>})
        )
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:inContainer)
          op: assign_op.Equal
          rhs: {(DQ <AssumeSoInitially>)}
          spids: [136]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} 
                      {
                        (DQ 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: (C {<go>} {<env>} {<GOHOSTOS>})
                          )
                        )
                      } {<Id.Lit_Equals '='>} {(SQ <windows>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-z>} 
                              {(DQ ($ Id.VSub_DollarName '$FROM_DOCKERFILE'))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<unset>} {<inContainer>})]
                  spids: [167 180]
                )
              ]
            )
          ]
          spids: [141 164]
        )
      ]
      else_action: [
        (command.If
          arms: [
            (if_arm
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$PWD'))} 
                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'/go/src/'> ($ Id.VSub_DollarName '$DOCKER_PKG'))} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              action: [(C {<unset>} {<inContainer>})]
              spids: [193 212]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$inContainer'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (BraceGroup
              children: [
                (C {<echo>} {(DQ <'# WARNING! I don\'t seem to be running in a Docker container.'>)})
                (C {<echo>} 
                  {(DQ <'# The result of this command might be an incorrect build, and will not be'>)}
                )
                (C {<echo>} {(DQ <'# officially supported.'>)})
                (C {<echo>} {(DQ <'#'>)})
                (C {<echo>} {(DQ <'# Try this instead: make all'>)})
                (C {<echo>} {(DQ <'#'>)})
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
            )
          ]
          spids: [225 238]
        )
      ]
    )
    (C {<echo>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DEFAULT_BUNDLES)
          op: assign_op.Equal
          rhs: 
            {
              (sh_array_literal
                left: <Id.Op_LParen _>
                words: [{<binary-daemon>} {<dynbinary>} {<test-integration>} {<test-docker-py>} {<cross>}]
              )
            }
          spids: [300]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:VERSION)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name VERSION>
                suffix_op: 
                  (suffix_op.Unary
                    tok: <Id.VTest_ColonHyphen ':-'>
                    arg_word: 
                      {
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              redirects: [
                                (redir
                                  op: <Id.Redir_Less '<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: {<'./VERSION'>}
                                )
                              ]
                              do_fork: F
                            )
                        )
                      }
                  )
              )
            }
          spids: [323]
        )
      ]
    )
    (command.Pipeline
      children: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:BUILDTIME)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Pipeline
                        children: [
                          (command.Simple
                            words: [
                              {<date>}
                              {<-u>}
                              {<-d>}
                              {
                                (DQ <'@'> 
                                  (braced_var_sub
                                    token: <Id.VSub_Name SOURCE_DATE_EPOCH>
                                    suffix_op: 
                                      (suffix_op.Unary
                                        tok: <Id.VTest_ColonHyphen ':-'>
                                        arg_word: 
                                          {
                                            (command_sub
                                              left_token: <Id.Left_DollarParen '$('>
                                              child: 
                                                (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>})
                                            )
                                          }
                                      )
                                  )
                                )
                              }
                              {<--rfc-3339>}
                              {<ns>}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                          (C {<sed>} {<-e>} {(SQ <'s/ /T/'>)})
                        ]
                        negated: F
                      )
                  )
                }
              spids: [336]
            )
          ]
        )
      ]
      negated: T
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$DOCKER_GITCOMMIT'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:GITCOMMIT)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$DOCKER_GITCOMMIT'))}
                  spids: [392]
                )
              ]
            )
          ]
          spids: [378 389]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (command.Simple
                          words: [{<command>} {<-v>} {<git>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_AndGreat '&>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                        (C {<Id.Lit_LBracket '['>} {<-e>} {<.git>} {<Id.Lit_RBracket ']'>})
                        (command.Simple
                          words: [{<git>} {<rev-parse>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_AndGreat '&>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:GITCOMMIT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<git>} {<rev-parse>} {<--short>} {<HEAD>})
                      )
                    }
                  spids: [433]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                              {
                                (DQ 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C {<git>} {<status>} {<--porcelain>} 
                                        {<--untracked-files> <Id.Lit_Equals '='> <no>}
                                      )
                                  )
                                )
                              } {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:GITCOMMIT)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$GITCOMMIT') <-unsupported>)}
                          spids: [471]
                        )
                      ]
                    )
                    (C {<echo>} {(DQ <'#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'>)})
                    (C {<echo>} {(DQ <'# GITCOMMIT = '> ($ Id.VSub_DollarName '$GITCOMMIT'))})
                    (C {<echo>} 
                      {(DQ <'# The version you are building is listed as unsupported because'>)}
                    )
                    (C {<echo>} 
                      {
                        (DQ 
                          <
'# there are some files in the git repository that are in an uncommitted state.'
                          >
                        )
                      }
                    )
                    (C {<echo>} 
                      {
                        (DQ 
                          <
'# Commit these changes, or add to .gitignore to remove the -unsupported from the version.'
                          >
                        )
                      }
                    )
                    (C {<echo>} {(DQ <'# Here is the current list:'>)})
                    (C {<git>} {<status>} {<--porcelain>} {<--untracked-files> <Id.Lit_Equals '='> <no>})
                    (C {<echo>} {(DQ <'#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'>)})
                  ]
                  spids: [445 468]
                )
              ]
            )
          ]
          spids: [397 430]
        )
      ]
      else_action: [
        (command.Simple
          words: [{<echo>} {(SQ <'error: .git directory missing and DOCKER_GITCOMMIT not specified'>)}]
          redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          do_fork: T
        )
        (command.Simple
          words: [
            {<echo>}
            {(SQ <'  Please either build with the .git directory accessible, or specify the'>)}
          ]
          redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          do_fork: T
        )
        (command.Simple
          words: [
            {<echo>}
            {(SQ <'  exact (--short) commit hash you are building using DOCKER_GITCOMMIT for'>)}
          ]
          redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          do_fork: T
        )
        (command.Simple
          words: [{<echo>} {(SQ <'  future accountability in diagnosing build issues.  Thanks!'>)}]
          redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          do_fork: T
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$AUTO_GOPATH'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<rm>} {<-rf>} {<.gopath>})
            (C {<mkdir>} {<-p>} 
              {<'.gopath/src/'> 
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: (C {<dirname>} {(DQ (${ Id.VSub_Name DOCKER_PKG))})
                  )
                )
              }
            )
            (C {<ln>} {<-sf>} {<'../../../..'>} {<'.gopath/src/'> (DQ (${ Id.VSub_Name DOCKER_PKG))})
            (C {<export>} {<Id.Lit_VarLike 'GOPATH='> (DQ (${ Id.VSub_Name PWD) <'/.gopath'>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {
                                (DQ 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: (C {<go>} {<env>} {<GOOS>})
                                  )
                                )
                              } {<Id.Lit_Equals '='>} {(SQ <solaris>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<export>} 
                      {<Id.Lit_VarLike 'GO_VERSION='> 
                        (braced_var_sub
                          token: <Id.VSub_Name GO_VERSION>
                          suffix_op: 
                            (suffix_op.Unary
                              tok: <Id.VTest_ColonHyphen ':-'>
                              arg_word: {(DQ <1.8.1>)}
                            )
                        )
                      }
                    )
                    (C {<export>} 
                      {<Id.Lit_VarLike 'GOPATH='> 
                        (DQ (${ Id.VSub_Name GOPATH) <':/usr/lib/gocode/'> (${ Id.VSub_Name GO_VERSION))
                      }
                    )
                  ]
                  spids: [656 679]
                )
              ]
            )
          ]
          spids: [591 602]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$GOPATH'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [
                {<echo>}
                {(SQ <'error: missing GOPATH; please see https://golang.org/doc/code.html#GOPATH'>)}
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {(SQ <'  alternatively, set AUTO_GOPATH=1'>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [721 734]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      words: [{(${ Id.VSub_Name PKG_CONFIG)} {(SQ <'libsystemd >= 209'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DOCKER_BUILDTAGS)
                  op: assign_op.PlusEqual
                  rhs: {(DQ <' journald'>)}
                  spids: [783]
                )
              ]
            )
          ]
          spids: [764 780]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      words: [{(${ Id.VSub_Name PKG_CONFIG)} {(SQ <libsystemd-journal>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DOCKER_BUILDTAGS)
                  op: assign_op.PlusEqual
                  rhs: {(DQ <' journald journald_compat'>)}
                  spids: [807]
                )
              ]
            )
          ]
          spids: [788 804]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.Simple
                          words: [{<command>} {<-v>} {<gcc>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_AndGreat '&>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Pipeline
                          children: [
                            (command.Simple
                              words: [{<gcc>} {<-E>} {<->} {<-o>} {<'/dev/null'>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                                (redir
                                  op: <Id.Redir_TLess '<<<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: {(SQ <'#include <btrfs/version.h>'>)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          negated: T
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DOCKER_BUILDTAGS)
                  op: assign_op.PlusEqual
                  rhs: {(SQ <' btrfs_noversion'>)}
                  spids: [863]
                )
              ]
            )
          ]
          spids: [818 860]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.Simple
                          words: [{<command>} {<-v>} {<gcc>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_AndGreat '&>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Pipeline
                          children: [
                            (command.Subshell
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {<echo>} {<-e>} 
                                      {
                                        (SQ 
                                          <
'#include <libdevmapper.h>\\nint main() { dm_task_deferred_remove(NULL); }'
                                          >
                                        )
                                      }
                                    )
                                    (command.Simple
                                      words: [
                                        {<gcc>}
                                        {<-xc>}
                                        {<->}
                                        {<-o>}
                                        {<'/dev/null'>}
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: (C {<pkg-config>} {<--libs>} {<devmapper>})
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_AndGreat '&>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  negated: F
                                )
                            )
                          ]
                          negated: T
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DOCKER_BUILDTAGS)
                  op: assign_op.PlusEqual
                  rhs: {(SQ <' libdm_no_deferred_remove'>)}
                  spids: [938]
                )
              ]
            )
          ]
          spids: [877 935]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:IAMSTATIC)
          op: assign_op.Equal
          rhs: {(SQ <true>)}
          spids: [950]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$DOCKER_DEBUG'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:LDFLAGS)
                  op: assign_op.Equal
                  rhs: {(SQ <-w>)}
                  spids: [971]
                )
              ]
            )
          ]
          spids: [955 968]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LDFLAGS_STATIC)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [979]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXTLDFLAGS_STATIC)
          op: assign_op.Equal
          rhs: {(SQ <-static>)}
          spids: [983]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ORIG_BUILDFLAGS)
          op: assign_op.Equal
          rhs: 
            {
              (sh_array_literal
                left: <Id.Op_LParen _>
                words: [
                  {<-tags>}
                  {(DQ <'autogen netgo static_build '> ($ Id.VSub_DollarName '$DOCKER_BUILDTAGS'))}
                  {<-installsuffix>}
                  {<netgo>}
                ]
              )
            }
          spids: [994]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:REBUILD_FLAG)
          op: assign_op.Equal
          rhs: {(DQ <-a>)}
          spids: [1020]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<Id.Lit_LBracket '['>} 
                          {(DQ ($ Id.VSub_DollarName '$DOCKER_INCREMENTAL_BINARY'))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <1>)} {<Id.Lit_RBracket ']'>}
                        )
                        (C {<Id.Lit_LBracket '['>} 
                          {(DQ ($ Id.VSub_DollarName '$DOCKER_INCREMENTAL_BINARY'))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:REBUILD_FLAG)
                  op: assign_op.Equal
                  rhs: {(DQ <-i>)}
                  spids: [1063]
                )
              ]
            )
          ]
          spids: [1025 1060]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ORIG_BUILDFLAGS)
          op: assign_op.PlusEqual
          rhs: 
            {
              (sh_array_literal
                left: <Id.Op_LParen _>
                words: [{($ Id.VSub_DollarName '$REBUILD_FLAG')}]
              )
            }
          spids: [1070]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BUILDFLAGS)
          op: assign_op.Equal
          rhs: 
            {
              (sh_array_literal
                left: <Id.Op_LParen _>
                words: [
                  {($ Id.VSub_DollarName '$BUILDFLAGS')}
                  {
                    (DQ 
                      (braced_var_sub
                        token: <Id.VSub_Name ORIG_BUILDFLAGS>
                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                      )
                    )
                  }
                ]
              )
            }
          spids: [1078]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name DOCKER_ENGINE_GOARCH))} 
                      {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <arm>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<Id.Lit_Colon ':'>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Name TIMEOUT>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonEquals ':='> arg_word:{<10m>})
                )
              }
            )
          ]
          spids: [1098 1118]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name DOCKER_ENGINE_GOARCH))} 
                      {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <windows>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<Id.Lit_Colon ':'>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Name TIMEOUT>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonEquals ':='> arg_word:{<8m>})
                )
              }
            )
          ]
          spids: [1129 1149]
        )
      ]
      else_action: [
        (C {<Id.Lit_Colon ':'>} 
          {
            (braced_var_sub
              token: <Id.VSub_Name TIMEOUT>
              suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonEquals ':='> arg_word:{<5m>})
            )
          }
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LDFLAGS_STATIC_DOCKER)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'\t'> ($ Id.VSub_DollarName '$LDFLAGS_STATIC') <'\n'> <'\t-extldflags '> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$EXTLDFLAGS_STATIC') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                <'\n'>
              )
            }
          spids: [1174]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} 
                      {
                        (DQ 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: (C {<uname>} {<-s>})
                          )
                        )
                      } {<Id.Lit_Equals '='>} {(SQ <FreeBSD>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<export>} {<Id.Lit_VarLike 'CC='> <clang>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:LDFLAGS)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$LDFLAGS') <' -extld clang'>)}
                  spids: [1235]
                )
              ]
            )
          ]
          spids: [1188 1209]
        )
      ]
    )
    (command.ShFunction
      name: bundle
      body: 
        (BraceGroup
          children: [
            (command.Sentence
              child: (C {<local>} {<Id.Lit_VarLike 'bundle='> (DQ ($ Id.VSub_Number '$1'))})
              terminator: <Id.Op_Semi _>
            )
            (C {<shift>})
            (C {<echo>} 
              {
                (DQ <'---> Making bundle: '> 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: (C {<basename>} {(DQ ($ Id.VSub_DollarName '$bundle'))})
                  ) <' (in '> ($ Id.VSub_DollarName '$DEST') <')'>
                )
              }
            )
            (C {<source>} 
              {(DQ ($ Id.VSub_DollarName '$SCRIPTDIR') <'/make/'> ($ Id.VSub_DollarName '$bundle'))} {(DQ ($ Id.VSub_At '$@'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: main
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-z>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name KEEPBUNDLE>
                                    suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:(word.Empty))
                                  )
                                )
                              } {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {(DQ <'Removing bundles/'>)})
                    (C {<rm>} {<-rf>} {(DQ <'bundles/*'>)})
                    (C {<echo>})
                  ]
                  spids: [1301 1317]
                )
              ]
            )
            (C {<mkdir>} {<-p>} {<bundles>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {
                                (DQ 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: (C {<go>} {<env>} {<GOHOSTOS>})
                                  )
                                )
                              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(SQ <windows>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<rm>} {<-f>} {<'bundles/latest'>})
                    (C {<ln>} {<-sf>} {<.>} {<'bundles/latest'>})
                  ]
                  spids: [1354 1378]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-lt>} {<1>} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:bundles)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {
                                    (braced_var_sub
                                      token: <Id.VSub_Name DEFAULT_BUNDLES>
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [1421]
                        )
                      ]
                    )
                  ]
                  spids: [1405 1418]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:bundles)
                      op: assign_op.Equal
                      rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{($ Id.VSub_At '$@')}])}
                      spids: [1435]
                    )
                  ]
                )
              ]
            )
            (command.ForEach
              iter_name: bundle
              iter_words: [
                {
                  (braced_var_sub
                    token: <Id.VSub_Name bundles>
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<export>} 
                      {<Id.Lit_VarLike 'DEST='> 
                        (DQ <'bundles/'> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: (C {<basename>} {(DQ ($ Id.VSub_DollarName '$bundle'))})
                          )
                        )
                      }
                    )
                    (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 
                                                (command_sub
                                                  left_token: <Id.Left_DollarParen '$('>
                                                  child: (C {<uname>} {<-s>})
                                                )
                                              )
                                            }
                                          right: {<CYGWIN> <Id.Lit_Other '*'>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<export>} 
                              {<Id.Lit_VarLike 'DEST='> 
                                (DQ 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: (C {<cygpath>} {<-mw>} {(DQ ($ Id.VSub_DollarName '$DEST'))})
                                  )
                                )
                              }
                            )
                          ]
                          spids: [1480 1500]
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$DEST'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ABS_DEST)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<cd>} {(DQ ($ Id.VSub_DollarName '$DEST'))})
                                        (C {<pwd>} {<-P>})
                                      ]
                                    )
                                )
                              )
                            }
                          spids: [1531]
                        )
                      ]
                    )
                    (C {<bundle>} {(DQ ($ Id.VSub_DollarName '$bundle'))})
                    (C {<echo>})
                  ]
                )
            )
          ]
        )
    )
    (C {<main>} {(DQ ($ Id.VSub_At '$@'))})
  ]
)