(command.CommandList children: [ (C {<set>} {<-xe>}) (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name OS> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonQMark ':?'> arg_word: {(DQ <'Environment variable \'OS\' must be set (e.g., OS=ubuntu:14.04)'>)} ) ) } ) (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name BUILDTOOL> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonQMark ':?'> arg_word: {(DQ <'Environment variable \'BUILDTOOL\' must be set (e.g., BUILDTOOL=autotools)'>)} ) ) } ) (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name COMPILER> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonQMark ':?'> arg_word: {(DQ <'Environment variable \'COMPILER\' must be set (e.g., COMPILER=gcc)'>)} ) ) } ) (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name CONFIGURATION> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonQMark ':?'> arg_word: { (DQ < 'Environment variable \'CONFIGURATION\' must be set (e.g., CONFIGURATION=\'--enable-libevent --enable-ssl\')' > ) } ) ) } ) (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name ENVIRONMENT> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonQMark ':?'> arg_word: { (DQ < 'Environment variable \'ENVIRONMENT\' must be set (e.g., ENVIRONMENT=\'GLOG_v=1 MESOS_VERBOSE=1\')' > ) } ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MESOS_DIRECTORY) op: assign_op.Equal rhs: { (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 ($ Id.VSub_Number '$0'))}) ) <'/..'> ) } ) (C {<pwd>}) ] ) ) } spids: [73] ) ] ) (C {<cd>} {(DQ ($ Id.VSub_DollarName '$MESOS_DIRECTORY'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOCKERFILE) op: assign_op.Equal rhs: {(DQ <Dockerfile>)} spids: [113] ) ] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$DOCKERFILE')}) (command.ShFunction name: append_dockerfile body: (BraceGroup children: [ (command.Simple words: [{<echo>} {($ Id.VSub_Number '$1')}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$DOCKERFILE')} ) ] do_fork: T ) ] ) ) (command.Case to_match: {($ Id.VSub_DollarName '$OS')} arms: [ (case_arm pat_list: [{<centos> <Id.Lit_Star '*'>}] action: [ (C {<append_dockerfile>} {(DQ <'FROM '> ($ Id.VSub_DollarName '$OS'))}) (C {<append_dockerfile>} {(DQ <'RUN yum install -y which'>)}) (C {<append_dockerfile>} {(DQ <'RUN yum groupinstall -y \'Development Tools\''>)}) (C {<append_dockerfile>} {(DQ <'RUN yum install -y epel-release'>)}) (C {<append_dockerfile>} {(DQ <'RUN yum install -y clang git maven cmake'>)}) (C {<append_dockerfile>} { (DQ < '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' > ) } ) (C {<append_dockerfile>} {(DQ <'RUN adduser mesos'>)}) ] spids: [161 163 239 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <ubuntu> <Id.Lit_Star '*'>}] action: [ (C {<append_dockerfile>} {(DQ <'FROM '> ($ Id.VSub_DollarName '$OS'))}) (C {<append_dockerfile>} {(DQ <'RUN rm -rf /var/lib/apt/lists/*'>)}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<uname>} {<-m>})))} {<Id.Lit_Equals '='>} {(DQ <x86_64>)} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLANG_PKG) op: assign_op.Equal rhs: {<clang-3.5>} spids: [310] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLANG_PKG) op: assign_op.Equal rhs: (word.Empty) spids: [315] ) ] ) ] ) (C {<append_dockerfile>} {(DQ <'RUN apt-get update'>)}) (C {<append_dockerfile>} { (DQ <'RUN apt-get -y install build-essential '> ($ Id.VSub_DollarName '$CLANG_PKG') <' git maven autoconf libtool cmake'> ) } ) (C {<append_dockerfile>} { (DQ < 'RUN apt-get -y install openjdk-7-jdk python-dev libcurl4-nss-dev libsasl2-dev libapr1-dev libsvn-dev libevent-dev libev-dev' > ) } ) (C {<append_dockerfile>} {(DQ <'RUN apt-get -y install wget curl sed'>)}) (C {<append_dockerfile>} {(DQ <'RUN adduser --disabled-password --gecos \'\' mesos'>)}) ] spids: [242 245 360 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} {(DQ <'Unknown OS '> ($ Id.VSub_DollarName '$OS'))}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [363 364 380 -1] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$COMPILER')} arms: [ (case_arm pat_list: [{<gcc>}] action: [ (C {<append_dockerfile>} {(DQ <'ENV CC gcc'>)}) (C {<append_dockerfile>} {(DQ <'ENV CXX g++'>)}) ] spids: [392 393 410 -1] ) (case_arm pat_list: [{<clang>}] action: [ (command.Case to_match: {($ Id.VSub_DollarName '$OS')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <ubuntu> <Id.Lit_Star '*'>}] action: [ (C {<append_dockerfile>} {(DQ <'ENV CC clang-3.5'>)}) (C {<append_dockerfile>} {(DQ <'ENV CXX clang++-3.5'>)}) ] spids: [424 427 444 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<append_dockerfile>} {(DQ <'ENV CC clang'>)}) (C {<append_dockerfile>} {(DQ <'ENV CXX clang++'>)}) ] spids: [447 448 465 -1] ) ] ) ] spids: [413 414 471 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} {(DQ <'Unknown Compiler '> ($ Id.VSub_DollarName '$COMPILER'))}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [474 475 491 -1] ) ] ) (C {<append_dockerfile>} {(DQ <'WORKDIR mesos'>)}) (C {<append_dockerfile>} {(DQ <'COPY . /mesos/'>)}) (C {<append_dockerfile>} {(DQ <'RUN chown -R mesos /mesos'>)}) (C {<append_dockerfile>} {(DQ <'USER mesos'>)}) (C {<append_dockerfile>} {(DQ <'ENV GTEST_OUTPUT xml:report.xml'>)}) (C {<append_dockerfile>} {(DQ <'ENV DISTCHECK_CONFIGURE_FLAGS '> ($ Id.VSub_DollarName '$CONFIGURATION'))} ) (C {<append_dockerfile>} {(DQ <'ENV '> ($ Id.VSub_DollarName '$ENVIRONMENT'))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$COVERITY_TOKEN'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<append_dockerfile>} { (DQ <'ENV MESOS_VERSION '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {(DQ <AC_INIT>)} {<configure.ac>}) (C {<sed>} {(SQ <'s/AC_INIT[(]\\[mesos\\], \\[\\(.*\\)\\][)]/\\1/'>)}) ] negated: F ) ) ) } ) (C {<append_dockerfile>} { (DQ <'RUN wget https://scan.coverity.com/download/linux64 --post-data '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'token='> ($ Id.VSub_DollarName '$COVERITY_TOKEN') <'&project=Mesos'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' -O coverity_tool.tgz'> ) } ) (C {<append_dockerfile>} {(DQ <'RUN tar xvf coverity_tool.tgz; mv cov-analysis-linux* cov-analysis'>)} ) (C {<append_dockerfile>} { (DQ <'CMD ./bootstrap && ./configure '> ($ Id.VSub_DollarName '$CONFIGURATION') < ' && cov-analysis/bin/cov-build -dir cov-int make -j6 && tar czcf mesos.tgz cov-int && tail cov-int/build-log.txt && curl --form ' > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'token='> ($ Id.VSub_DollarName '$COVERITY_TOKEN') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' --form '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'email=dev@mesos.apache.org'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' --form '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'file=@mesos.tgz'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' --form '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'version='> ($ Id.VSub_DollarName '$MESOS_VERSION') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' --form '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'description=\'Continious Coverity Build\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' https://scan.coverity.com/builds?project=Mesos'> ) } ) ] spids: [580 593] ) ] else_action: [ (command.Case to_match: {($ Id.VSub_DollarName '$BUILDTOOL')} arms: [ (case_arm pat_list: [{<autotools>}] action: [ (C {<append_dockerfile>} { (DQ <'CMD ./bootstrap && ./configure '> ($ Id.VSub_DollarName '$CONFIGURATION') <' && make -j6 distcheck 2>&1'> ) } ) ] spids: [693 694 706 -1] ) (case_arm pat_list: [{<cmake>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFIGURATION) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name CONFIGURATION> suffix_op: (suffix_op.PatSub pat: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>)} replace: {(DQ )} replace_mode: Id.Lit_Slash ) ) } spids: [721] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFIGURATION) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name CONFIGURATION> suffix_op: (suffix_op.PatSub pat: {<->} replace: {(DQ <_>)} replace_mode: Id.Lit_Slash ) ) } spids: [737] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFIGURATION) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name CONFIGURATION> suffix_op: (suffix_op.PatSub pat: {<__>} replace: {(DQ <-D>)} replace_mode: Id.Lit_Slash ) ) } spids: [754] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFIGURATION) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name CONFIGURATION> suffix_op: (suffix_op.Unary tok:<Id.VOp1_DCaret '^^'> arg_word:{}) ) } spids: [771] ) ] ) (command.Simple words: [{<read>} {<-r>} {<-a>} {<array>}] redirects: [ (redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName '$CONFIGURATION'))} ) ] more_env: [(env_pair name:IFS val:{(SQ <' '>)} spids:[783])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFIGURATION) op: assign_op.Equal rhs: {(DQ )} spids: [804] ) ] ) (command.ForEach iter_name: element iter_words: [ { (DQ (braced_var_sub token: <Id.VSub_Name array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFIGURATION) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$CONFIGURATION') <' '> ($ Id.VSub_DollarName '$element') <'=1'> ) } spids: [828] ) ] ) ] ) ) (C {<append_dockerfile>} { (DQ <'CMD ./bootstrap && mkdir build && cd build && cmake '> ($ Id.VSub_DollarName '$CONFIGURATION') <' .. && make -j6 check && make -j6'> ) } ) ] spids: [709 710 866 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} {(DQ <'Unknown build tool '> ($ Id.VSub_DollarName '$BUILDTOOL'))}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [869 870 886 -1] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TAG) op: assign_op.Equal rhs: {<mesos-> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}) ) <-> ($ Id.VSub_DollarName '$RANDOM') } spids: [897] ) ] ) (C {<docker>} {<build>} {<--no-cache> <Id.Lit_Equals '='> <true>} {<-t>} {($ Id.VSub_DollarName '$TAG')} {<.>} ) (C {<trap>} {(DQ <'docker rmi '> ($ Id.VSub_DollarName '$TAG'))} {<EXIT>}) (C {<docker>} {<run>} {<--privileged>} {<--rm>} {($ Id.VSub_DollarName '$TAG')}) ] )