(command.CommandList children: [ (command.Case to_match: {($ Id.VSub_Pound '$#')} arms: [ (case_arm pat_list: [{<2>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERSION) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [99] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RC_NUMBER) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [105] ) ] ) ] spids: [96 97 111 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} {(DQ <'Usage: '> ($ Id.VSub_Number '$0') <' X.Y.Z RC_NUMBER'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [115 116 132 -1] ) ] ) (C {<set>} {<-ex>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HERE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<cd>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<dirname>} { (DQ (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {($ Id.VSub_Number '$0')} ) ) ) } ) ) } ) (C {<pwd>}) ] ) ) } spids: [142] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARROW_DIST_URL) op: assign_op.Equal rhs: {(SQ <'https://dist.apache.org/repos/dist/dev/arrow'>)} spids: [169] ) ] ) (command.ShFunction name: download_dist_file body: (BraceGroup children: [ (C {<curl>} {<-f>} {<-O>} {($ Id.VSub_DollarName '$ARROW_DIST_URL') <'/'> ($ Id.VSub_Number '$1')} ) ] ) ) (command.ShFunction name: download_rc_file body: (BraceGroup children: [ (C {<download_dist_file>} {<apache-arrow-> (${ Id.VSub_Name VERSION) <-rc> (${ Id.VSub_Name RC_NUMBER) <'/'> ($ Id.VSub_Number '$1') } ) ] ) ) (command.ShFunction name: import_gpg_keys body: (BraceGroup children: [(C {<download_dist_file>} {<KEYS>}) (C {<gpg>} {<--import>} {<KEYS>})] ) ) (command.ShFunction name: fetch_archive body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'dist_name='> ($ Id.VSub_Number '$1')}) (C {<download_rc_file>} {(${ Id.VSub_Name dist_name) <.tar.gz>}) (C {<download_rc_file>} {(${ Id.VSub_Name dist_name) <.tar.gz.asc>}) (C {<download_rc_file>} {(${ Id.VSub_Name dist_name) <.tar.gz.md5>}) (C {<download_rc_file>} {(${ Id.VSub_Name dist_name) <.tar.gz.sha512>}) (C {<gpg>} {<--verify>} {(${ Id.VSub_Name dist_name) <.tar.gz.asc>} {(${ Id.VSub_Name dist_name) <.tar.gz>} ) (command.Pipeline children: [ (C {<gpg>} {<--print-md>} {<MD5>} {(${ Id.VSub_Name dist_name) <.tar.gz>}) (C {<diff>} {<->} {(${ Id.VSub_Name dist_name) <.tar.gz.md5>}) ] negated: F ) (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>}) ) ) } {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <Darwin>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<shasum>} {<-a>} {<512>} {(${ Id.VSub_Name dist_name) <.tar.gz>}) (C {<diff>} {<->} {(${ Id.VSub_Name dist_name) <.tar.gz.sha512>}) ] negated: F ) ] spids: [322 342] ) ] else_action: [ (command.Pipeline children: [ (C {<sha512sum>} {(${ Id.VSub_Name dist_name) <.tar.gz>}) (C {<diff>} {<->} {(${ Id.VSub_Name dist_name) <.tar.gz.sha512>}) ] negated: F ) ] ) ] ) ) (command.ShFunction name: setup_tempdir body: (BraceGroup children: [ (command.ShFunction name: cleanup body: (BraceGroup children: [(C {<rm>} {<-fr>} {(DQ ($ Id.VSub_DollarName '$TMPDIR'))})] ) ) (C {<trap>} {<cleanup>} {<EXIT>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TMPDIR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<-d>} {<-t>} {(DQ ($ Id.VSub_Number '$1') <.XXXXX>)}) ) } spids: [428] ) ] ) ] ) ) (command.ShFunction name: setup_miniconda body: (BraceGroup children: [ (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>}) ) ) } {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <Darwin>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MINICONDA_URL) op: assign_op.Equal rhs: {<https> <Id.Lit_Colon ':'> <'//repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh'> } spids: [480] ) ] ) ] spids: [457 477] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MINICONDA_URL) op: assign_op.Equal rhs: {<https> <Id.Lit_Colon ':'> <'//repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh'> } spids: [489] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MINICONDA) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})) <'/test-miniconda'> } spids: [499] ) ] ) (C {<wget>} {<-O>} {<miniconda.sh>} {($ Id.VSub_DollarName '$MINICONDA_URL')}) (C {<bash>} {<miniconda.sh>} {<-b>} {<-p>} {($ Id.VSub_DollarName '$MINICONDA')}) (C {<rm>} {<-f>} {<miniconda.sh>}) (C {<export>} {<Id.Lit_VarLike 'PATH='> ($ Id.VSub_DollarName '$MINICONDA') <'/bin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$PATH') } ) (C {<conda>} {<create>} {<-n>} {<arrow-test>} {<-y>} {<-q>} {<Id.Lit_VarLike 'python='> <3.6>} {<nomkl>} {<numpy>} {<pandas>} {<six>} {<cython>} ) (C {<source>} {<activate>} {<arrow-test>}) ] ) ) (command.ShFunction name: test_and_install_cpp body: (BraceGroup children: [ (C {<mkdir>} {<'cpp/build'>}) (C {<pushd>} {<'cpp/build'>}) (C {<cmake>} {<-DCMAKE_INSTALL_PREFIX> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$ARROW_HOME')} {<-DARROW_PLASMA> <Id.Lit_Equals '='> <on>} {<-DARROW_PYTHON> <Id.Lit_Equals '='> <on>} {<-DARROW_BOOST_USE_SHARED> <Id.Lit_Equals '='> <on>} {<-DCMAKE_BUILD_TYPE> <Id.Lit_Equals '='> <release>} {<-DARROW_BUILD_BENCHMARKS> <Id.Lit_Equals '='> <on>} {<..>} ) (C {<make>} {<-j> ($ Id.VSub_DollarName '$NPROC')}) (C {<make>} {<install>}) (C {<ctest>} {<-L>} {<unittest>}) (C {<popd>}) ] ) ) (command.ShFunction name: install_parquet_cpp body: (BraceGroup children: [ (C {<git>} {<clone>} {<git> <Id.Lit_Splice '@github'> <.com> <Id.Lit_Colon ':'> <'apache/parquet-cpp.git'>} ) (C {<mkdir>} {<'parquet-cpp/build'>}) (C {<pushd>} {<'parquet-cpp/build'>}) (C {<cmake>} {<-DCMAKE_INSTALL_PREFIX> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$PARQUET_HOME')} {<-DCMAKE_BUILD_TYPE> <Id.Lit_Equals '='> <release>} {<-DPARQUET_BOOST_USE_SHARED> <Id.Lit_Equals '='> <on>} {<-DPARQUET_BUILD_TESTS> <Id.Lit_Equals '='> <off>} {<..>} ) (C {<make>} {<-j> ($ Id.VSub_DollarName '$NPROC')}) (C {<make>} {<install>}) (C {<popd>}) ] ) ) (command.ShFunction name: test_python body: (BraceGroup children: [ (C {<pushd>} {<python>}) (C {<pip>} {<install>} {<-r>} {<requirements.txt>}) (C {<python>} {<setup.py>} {<build_ext>} {<--inplace>} {<--with-parquet>} {<--with-plasma>}) (C {<py.test>} {<pyarrow>} {<-v>} {<--pdb>}) (C {<popd>}) ] ) ) (command.ShFunction name: test_glib body: (BraceGroup children: [ (C {<pushd>} {<c_glib>}) (C {<'./configure'>} {<--prefix> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$ARROW_HOME')}) (C {<make>} {<-j> ($ Id.VSub_DollarName '$NPROC')}) (C {<make>} {<install>}) (command.Simple words: [{<'test/run-test.sh'>}] more_env: [(env_pair name:NO_MAKE val:{<yes>} spids:[841])] do_fork: T ) (C {<popd>}) ] ) ) (command.ShFunction name: test_js body: (BraceGroup children: [ (C {<pushd>} {<js>}) (C {<npm>} {<install>}) (C {<npm>} {<run>} {<validate>}) (C {<popd>}) ] ) ) (command.ShFunction name: test_package_java body: (BraceGroup children: [(C {<pushd>} {<java>}) (C {<mvn>} {<test>}) (C {<mvn>} {<package>}) (C {<popd>})] ) ) (command.ShFunction name: test_integration body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:JAVA_DIR) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})) <'/java'>} spids: [925] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPP_BUILD_DIR) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})) <'/cpp/build'>} spids: [934] ) ] ) (C {<export>} {<Id.Lit_VarLike 'ARROW_JAVA_INTEGRATION_JAR='> ($ Id.VSub_DollarName '$JAVA_DIR') <'/tools/target/arrow-tools-'> ($ Id.VSub_DollarName '$VERSION') <-jar-with-dependencies.jar> } ) (C {<export>} {<Id.Lit_VarLike 'ARROW_CPP_EXE_PATH='> ($ Id.VSub_DollarName '$CPP_BUILD_DIR') <'/release'> } ) (C {<pushd>} {<integration>}) (C {<python>} {<integration_test.py>}) (C {<popd>}) ] ) ) (C {<setup_tempdir>} {(DQ <arrow-> ($ Id.VSub_DollarName '$VERSION'))}) (C {<echo>} {(DQ <'Working in sandbox '> ($ Id.VSub_DollarName '$TMPDIR'))}) (C {<cd>} {($ Id.VSub_DollarName '$TMPDIR')}) (C {<export>} {<Id.Lit_VarLike 'ARROW_HOME='> ($ Id.VSub_DollarName '$TMPDIR') <'/install'>}) (C {<export>} {<Id.Lit_VarLike 'PARQUET_HOME='> ($ Id.VSub_DollarName '$TMPDIR') <'/install'>}) (C {<export>} {<Id.Lit_VarLike 'LD_LIBRARY_PATH='> ($ Id.VSub_DollarName '$ARROW_HOME') <'/lib'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$LD_LIBRARY_PATH') } ) (C {<export>} {<Id.Lit_VarLike 'PKG_CONFIG_PATH='> ($ Id.VSub_DollarName '$ARROW_HOME') <'/lib/pkgconfig'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$PKG_CONFIG_PATH') } ) (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>})))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <Darwin>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NPROC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sysctl>} {<-n>} {<hw.ncpu>}) ) } spids: [1049] ) ] ) ] spids: [1026 1046] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NPROC) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<nproc>}))} spids: [1061] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERSION) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1068] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RC_NUMBER) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [1071] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARBALL) op: assign_op.Equal rhs: {<apache-arrow-> ($ Id.VSub_Number '$1') <.tar.gz>} spids: [1075] ) ] ) (C {<import_gpg_keys>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIST_NAME) op: assign_op.Equal rhs: {(DQ <apache-arrow-> (${ Id.VSub_Name VERSION))} spids: [1084] ) ] ) (C {<fetch_archive>} {($ Id.VSub_DollarName '$DIST_NAME')}) (C {<tar>} {<xvzf>} {(${ Id.VSub_Name DIST_NAME) <.tar.gz>}) (C {<cd>} {(${ Id.VSub_Name DIST_NAME)}) (C {<setup_miniconda>}) (C {<test_and_install_cpp>}) (C {<install_parquet_cpp>}) (C {<test_python>}) (C {<test_glib>}) (C {<test_package_java>}) (C {<test_integration>}) (C {<test_js>}) (C {<echo>} {(SQ <'Release candidate looks good!'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )