(List
  (Com {[LIT_CHARS set]} {[LIT_CHARS -xe]})
  (Com {[LIT_OTHER ":"]} {[VarSub OS test_op=VS_TEST_COLON_QMARK {[DQ [LIT_CHARS "Environment variable 'OS' must be set (e.g., OS=ubuntu:14.04)"]]}]})
  (Com {[LIT_OTHER ":"]} {[VarSub BUILDTOOL test_op=VS_TEST_COLON_QMARK {[DQ [LIT_CHARS "Environment variable 'BUILDTOOL' must be set (e.g., BUILDTOOL=autotools)"]]}]})
  (Com {[LIT_OTHER ":"]} {[VarSub COMPILER test_op=VS_TEST_COLON_QMARK {[DQ [LIT_CHARS "Environment variable 'COMPILER' must be set (e.g., COMPILER=gcc)"]]}]})
  (Com {[LIT_OTHER ":"]} {[VarSub CONFIGURATION test_op=VS_TEST_COLON_QMARK {[DQ [LIT_CHARS "Environment variable 'CONFIGURATION' must be set (e.g., CONFIGURATION='--enable-libevent --enable-ssl')"]]}]})
  (Com {[LIT_OTHER ":"]} {[VarSub ENVIRONMENT test_op=VS_TEST_COLON_QMARK {[DQ [LIT_CHARS "Environment variable 'ENVIRONMENT' must be set (e.g., ENVIRONMENT='GLOG_v=1 MESOS_VERBOSE=1')"]]}]})
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('MESOS_DIRECTORY', {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub 0]]})][LIT_CHARS /..]]}) (Com {[LIT_CHARS pwd]}) )]})])
  (Com {[LIT_CHARS cd]} {[DQ [VarSub MESOS_DIRECTORY]]})
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('DOCKERFILE', {[DQ [LIT_CHARS Dockerfile]]})])
  (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[VarSub DOCKERFILE]})
  (FunctionDef append_dockerfile []
    (Com {[LIT_CHARS echo]} {[VarSub 1]}
      <
      (FilenameRedirectNode filename={[VarSub DOCKERFILE]} <REDIR_DGREAT ">>"> 1),
      >
    )
  )
  (Case to_match={[VarSub OS]}, pat_word_list=[[{[LIT_CHARS centos] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"] [LIT_CHARS ubuntu] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]]
    (List
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "FROM "][VarSub OS]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN yum install -y which"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN yum groupinstall -y 'Development Tools'"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN yum install -y epel-release"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN yum install -y clang git maven cmake"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN yum install -y java-1.8.0-openjdk-devel python-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-utils-devel libevent-devel libev-devel"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN adduser mesos"]]})
    )
    (List
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "FROM "][VarSub OS]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN rm -rf /var/lib/apt/lists/*"]]})
      (AndOr OP_AND_IF
        (Com {[LIT_OTHER "["]} {[DQ [ComSub (Com {[LIT_CHARS uname]} {[LIT_CHARS -m]})]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS x86_64]]} {[LIT_OTHER "]"]})
        (AndOr OP_OR_IF
          (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CLANG_PKG', {[LIT_CHARS clang-3.5]})])
          (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CLANG_PKG', {[SQ ]})])
        )
      )
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN apt-get update"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN apt-get -y install build-essential "][VarSub CLANG_PKG][LIT_CHARS " git maven autoconf libtool cmake"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN apt-get -y install openjdk-7-jdk python-dev libcurl4-nss-dev libsasl2-dev libapr1-dev libsvn-dev libevent-dev libev-dev"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN apt-get -y install wget curl sed"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN adduser --disabled-password --gecos '' mesos"]]})
    )
    (List
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Unknown OS "][VarSub OS]]})
      (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]})
    )
  )
  (Case to_match={[VarSub COMPILER]}, pat_word_list=[[{[LIT_CHARS gcc]}], [{[LIT_CHARS clang]}], [{[LIT_OTHER "*"]}]]
    (List
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "ENV CC gcc"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "ENV CXX g++"]]})
    )
    (Case to_match={[VarSub OS]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_CHARS ubuntu] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]]
      (List
        (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "ENV CC clang-3.5"]]})
        (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "ENV CXX clang++-3.5"]]})
      )
      (List
        (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "ENV CC clang"]]})
        (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "ENV CXX clang++"]]})
      )
    )
    (List
      (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Unknown Compiler "][VarSub COMPILER]]})
      (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]})
    )
  )
  (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "WORKDIR mesos"]]})
  (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "COPY . /mesos/"]]})
  (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN chown -R mesos /mesos"]]})
  (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "USER mesos"]]})
  (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "ENV GTEST_OUTPUT xml:report.xml"]]})
  (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "ENV DISTCHECK_CONFIGURE_FLAGS "][VarSub CONFIGURATION]]})
  (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "ENV "][VarSub ENVIRONMENT]]})
  (If
    (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub COVERITY_TOKEN]]} {[LIT_OTHER "]"]})
    (List
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "ENV MESOS_VERSION "][ComSub (Pipeline (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS AC_INIT]]} {[LIT_CHARS configure.ac]}) (Com {[LIT_CHARS sed]} {[SQ <LIT_CHARS "s/AC_INIT[(]\\[mesos\\], \\[\\(.*\\)\\][)]/\\1/">]}) )]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN wget https://scan.coverity.com/download/linux64  --post-data "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "token="][VarSub COVERITY_TOKEN][LIT_CHARS "&project=Mesos"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " -O coverity_tool.tgz"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "RUN tar xvf coverity_tool.tgz; mv cov-analysis-linux* cov-analysis"]]})
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "CMD ./bootstrap && ./configure "][VarSub CONFIGURATION][LIT_CHARS " &&  cov-analysis/bin/cov-build -dir cov-int make -j6 && tar czcf mesos.tgz cov-int && tail cov-int/build-log.txt && curl --form "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "token="][VarSub COVERITY_TOKEN][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " --form "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "email=dev@mesos.apache.org"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "  --form "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "file=@mesos.tgz"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " --form "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "version="][VarSub MESOS_VERSION][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " --form "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "description='Continious Coverity Build'"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "   https://scan.coverity.com/builds?project=Mesos"]]})
    )
    (ElseTrue)
    (Case to_match={[VarSub BUILDTOOL]}, pat_word_list=[[{[LIT_CHARS autotools]}], [{[LIT_CHARS cmake]}], [{[LIT_OTHER "*"]}]]
      (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "CMD ./bootstrap && ./configure "][VarSub CONFIGURATION][LIT_CHARS " && make -j6 distcheck 2>&1"]]})
      (List
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CONFIGURATION', {[VarSub CONFIGURATION transform_ops=[PatSub {[\ LIT_ESCAPED_CHAR "\\'"]} {[DQ ]} do_all]]})])
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CONFIGURATION', {[VarSub CONFIGURATION transform_ops=[PatSub {[LIT_CHARS -]} {[DQ [LIT_CHARS _]]} do_all]]})])
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CONFIGURATION', {[VarSub CONFIGURATION transform_ops=[PatSub {[LIT_CHARS __]} {[DQ [LIT_CHARS -D]]} do_all]]})])
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CONFIGURATION', {[VarSub CONFIGURATION transform_ops=[VS_UNARY_DCARET {}]]})])
        (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS -a]} {[LIT_CHARS array]}
          <
          (HereWordRedirectNode here_word={[DQ [VarSub CONFIGURATION]]} <REDIR_TLESS "<<<"> 0),
          >

                more_env=[('IFS', {[SQ <LIT_CHARS " ">]})]
        )
        (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CONFIGURATION', {[DQ ]})])
        (For element [{[DQ [VarSub array bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}])
          (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('CONFIGURATION', {[DQ [VarSub CONFIGURATION][LIT_CHARS " "][VarSub element][LIT_CHARS "=1"]]})])
        )
        (Com {[LIT_CHARS append_dockerfile]} {[DQ [LIT_CHARS "CMD ./bootstrap && mkdir build && cd build && cmake "][VarSub CONFIGURATION][LIT_CHARS " .. && make -j6 check && make -j6"]]})
      )
      (List
        (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Unknown build tool "][VarSub BUILDTOOL]]})
        (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]})
      )
    )
  )
  (= scope=<EAssignScope.GLOBAL 1> flags=0 words=[] bindings=[('TAG', {[LIT_CHARS mesos-] [ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS s]})] [LIT_CHARS -] [VarSub RANDOM]})])
  (Com {[LIT_CHARS docker]} {[LIT_CHARS build]} {[LIT_CHARS --no-cache] [LIT_OTHER "="] [LIT_CHARS true]} {[LIT_CHARS -t]} {[VarSub TAG]} {[LIT_CHARS .]})
  (Com {[LIT_CHARS trap]} {[DQ [LIT_CHARS "docker rmi "][VarSub TAG]]} {[LIT_CHARS EXIT]})
  (Com {[LIT_CHARS docker]} {[LIT_CHARS run]} {[LIT_CHARS --privileged]} {[LIT_CHARS --rm]} {[VarSub TAG]})
)