(List (Com {[LIT_CHARS set]} {[LIT_CHARS -e]}) (= scope= flags=0 words=[] bindings=[('install_prefix', {[VarSub 1 test_op=VS_TEST_COLON_HYPHEN {[DQ [LIT_CHARS /usr/local]]}]})]) (= scope= flags=0 words=[] bindings=[('progname', {[DQ [VarSub 0]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Bazel installer"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS ---------------]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Bazel is bundled with software licensed under the GPLv2 with Classpath exception."]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "You can find the sources next to the installer on our release page:"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " https://github.com/bazelbuild/bazel/releases"]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "%release_info%\n"]} 0), > ) (FunctionDef usage [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub progname][LIT_CHARS " [options]"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Options are:"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " --prefix=/some/path set the prefix path (default=/usr/local)."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " --bin= set the binary folder path (default=%prefix%/bin)."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " --base= set the base install path (default=%prefix%/lib/bazel)."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " --bazelrc= set the path to bazelrc (default=/etc/bazel.bazelrc)."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " --user configure for user install, expands to:"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('prefix', {[DQ [LIT_CHARS /usr/local]]})]) (= scope= flags=0 words=[] bindings=[('bin', {[DQ [LIT_CHARS "%prefix%/bin"]]})]) (= scope= flags=0 words=[] bindings=[('base', {[DQ [LIT_CHARS "%prefix%/lib/bazel"]]})]) (= scope= flags=0 words=[] bindings=[('bazelrc', {[DQ [LIT_CHARS /etc/bazel.bazelrc]]})]) (For opt [{[DQ [VarSub @]]}]) (Case to_match={[VarSub opt]}, pat_word_list=[[{[LIT_CHARS --prefix] [LIT_OTHER "="] [LIT_OTHER "*"]}], [{[LIT_CHARS --bazelrc] [LIT_OTHER "="] [LIT_OTHER "*"]}], [{[LIT_CHARS --bin] [LIT_OTHER "="] [LIT_OTHER "*"]}], [{[LIT_CHARS --base] [LIT_OTHER "="] [LIT_OTHER "*"]}], [{[LIT_CHARS --user]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('prefix', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub opt]]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d]} {[SQ ]} {[LIT_CHARS -f]} {[LIT_CHARS 2-]}) )]]})]) (= scope= flags=0 words=[] bindings=[('bin', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub opt]]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d]} {[SQ ]} {[LIT_CHARS -f]} {[LIT_CHARS 2-]}) )]]})]) (List (= scope= flags=0 words=[] bindings=[('bin', {[DQ [VarSub HOME][LIT_CHARS /bin]]})]) (= scope= flags=0 words=[] bindings=[('base', {[DQ [VarSub HOME][LIT_CHARS /.bazel]]})]) (= scope= flags=0 words=[] bindings=[('bazelrc', {[DQ [VarSub HOME][LIT_CHARS /.bazelrc]]})]) ) (Com {[LIT_CHARS usage]}) ) ) (= scope= flags=0 words=[] bindings=[('bin', {[DQ [VarSub bin transform_ops=[PatSub {[LIT_CHARS prefix] [LIT_PERCENT "%"]} {[VarSub prefix]} do_all do_prefix]]]})]) (= scope= flags=0 words=[] bindings=[('base', {[DQ [VarSub base transform_ops=[PatSub {[LIT_CHARS prefix] [LIT_PERCENT "%"]} {[VarSub prefix]} do_all do_prefix]]]})]) (= scope= flags=0 words=[] bindings=[('bazelrc', {[DQ [VarSub bazelrc transform_ops=[PatSub {[LIT_CHARS prefix] [LIT_PERCENT "%"]} {[VarSub prefix]} do_all do_prefix]]]})]) (FunctionDef test_write [] (List (= scope= flags=0 words=[] bindings=[('file', {[DQ [VarSub 1]]})]) (While (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub file]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [LIT_CHARS /]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub file]]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub file]]} {[LIT_OTHER "]"]}) ) ) (= scope= flags=0 words=[] bindings=[('file', {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub file]]})]]})]) ) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -w]} {[DQ [VarSub file]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "The Bazel installer must have write access to "][VarSub 1][LIT_CHARS "!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Consider using the --user flag to install Bazel under "][VarSub HOME][LIT_CHARS "/bin instead."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS usage]}) ) ) ) ) (If (Pipeline! (Com {[LIT_CHARS which]} {[LIT_CHARS unzip]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "unzip not found, please install the corresponding package."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "See http://bazel.build/docs/install.html for more information on"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "dependencies of Bazel."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub JAVA_HOME test_op=VS_TEST_HYPHEN {}]]} {[LIT_OTHER "]"]}) (Case to_match={[DQ [ComSub (Pipeline (Com {[LIT_CHARS uname]} {[LIT_CHARS -s]}) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]}) )]]}, pat_word_list=[[{[LIT_CHARS linux]}], [{[LIT_CHARS freebsd]}], [{[LIT_CHARS darwin]}]] (List (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('JAVA_HOME', {[DQ [ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS readlink]} {[LIT_CHARS -f]} {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS javac]})]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]]})]) (Com {[LIT_CHARS true]}) ) (= scope= flags=0 words=[] bindings=[('BASHRC', {[DQ [LIT_CHARS "~/.bashrc"]]})]) ) (List (= scope= flags=0 words=[] bindings=[('JAVA_HOME', {[DQ [LIT_CHARS /usr/local/openjdk8]]})]) (= scope= flags=0 words=[] bindings=[('BASHRC', {[DQ [LIT_CHARS "~/.bashrc"]]})]) ) (List (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('JAVA_HOME', {[DQ [ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS /usr/libexec/java_home]} {[LIT_CHARS -v]} {[VarSub JAVA_VERSION] [LIT_OTHER "+"]})]]})]) (Com {[LIT_CHARS true]}) ) (= scope= flags=0 words=[] bindings=[('BASHRC', {[DQ [LIT_CHARS "~/.bash_profile"]]})]) ) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -x]} {[DQ [VarSub JAVA_HOME][LIT_CHARS /bin/javac]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Java not found, please install the corresponding package"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "See http://bazel.build/docs/install.html for more information on"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "dependencies of Bazel."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS test_write]} {[DQ [VarSub bin]]}) (Com {[LIT_CHARS test_write]} {[DQ [VarSub base]]}) (Com {[LIT_CHARS test_write]} {[DQ [VarSub bazelrc]]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS Uncompressing.]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub bin][LIT_CHARS /bazel]]}) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[DQ [VarSub base]]} {[LIT_CHARS -a]} {[LIT_CHARS -x]} {[DQ [VarSub base][LIT_CHARS /bin/bazel]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[DQ [VarSub base]]}) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub bin]} {[VarSub base]} {[VarSub base] [LIT_CHARS /bin]} {[VarSub base] [LIT_CHARS /etc]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS .]}) (Com {[LIT_CHARS unzip]} {[LIT_CHARS -q]} {[DQ [VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]} {[LIT_CHARS bazel]} {[LIT_CHARS bazel-real]} {[LIT_CHARS bazel-complete.bash]} {[LIT_CHARS -d]} {[DQ [VarSub base][LIT_CHARS /bin]]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS .]}) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 0755]} {[DQ [VarSub base][LIT_CHARS /bin/bazel]]} {[DQ [VarSub base][LIT_CHARS /bin/bazel-real]]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS .]}) (Com {[LIT_CHARS chmod]} {[LIT_CHARS -R]} {[LIT_CHARS og-w]} {[DQ [VarSub base]]}) (Com {[LIT_CHARS chmod]} {[LIT_CHARS -R]} {[LIT_CHARS og] [LIT_OTHER "+"] [LIT_CHARS rX]} {[DQ [VarSub base]]}) (Com {[LIT_CHARS chmod]} {[LIT_CHARS -R]} {[LIT_CHARS u] [LIT_OTHER "+"] [LIT_CHARS rwX]} {[DQ [VarSub base]]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS .]}) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[DQ [VarSub base][LIT_CHARS /bin/bazel]]} {[DQ [VarSub bin][LIT_CHARS /bazel]]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS .]}) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub bazelrc]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS echo]} {[DQ [VarSub bazelrc][LIT_CHARS " already exists, moving it to "][VarSub bazelrc][LIT_CHARS .bak.]]}) (Com {[LIT_CHARS mv]} {[DQ [VarSub bazelrc]]} {[DQ [VarSub bazelrc][LIT_CHARS .bak]]}) ) ) (Com {[LIT_CHARS touch]} {[DQ [VarSub bazelrc]]}) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub UID]]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 0644]} {[DQ [VarSub bazelrc]]}) (ElseTrue) (Com {[DQ [VarSub bin][LIT_CHARS /bazel]]} {[LIT_CHARS help]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS .]}) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "\n"][LIT_CHARS "Bazel is now installed!\n"][LIT_CHARS "\n"][LIT_CHARS "Make sure you have "][RIGHT_D_QUOTE "\""][VarSub bin][RIGHT_D_QUOTE "\""][LIT_CHARS " in your path. You can also activate bash\n"][LIT_CHARS "completion by adding the following line to your "][VarSub BASHRC][LIT_CHARS ":\n"][LIT_CHARS " source "][VarSub base][LIT_CHARS "/bin/bazel-complete.bash\n"][LIT_CHARS "\n"][LIT_CHARS "See http://bazel.build/docs/getting-started.html to start a new project!\n"]]} 0), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) )