#!/bin/sh # This script installs Oracle's JRE or JDK from already downloaded 'tar.gz' # archive. Oracle's license doesn't allow direct downloads, so you need to do # the following: # # 1) Download JRE or JDK from http://oracle.com # 2) Add the following property in the '.config' file: # # JAVA_ARCHIVE=/absolute/path/to/java/archive.tar.gz # # Example: # # JAVA_ARCHIVE=/home/ivan/Downloads/jdk-8u102-linux-x64.tar.gz # # 3) Run this script. Note that the script will fail with error message if the # 'JAVA_ARCHIVE' property is not set or if it points to invalid file. global SRC_DIR := $[pwd] # Read the 'JAVA_ARCHIVE' property from '.config' global JAVA_ARCHIVE := $[grep -i ^JAVA_ARCHIVE .config | cut -f2 -d'=] if test $JAVA_ARCHIVE = "" { echo "ERROR: configuration property 'JAVA_ARCHIVE' is not set." exit 1 } elif test ! -f $JAVA_ARCHIVE { echo "ERROR: configuration property 'JAVA_ARCHIVE' points to nonexistent file." exit 1 } rm -rf $SRC_DIR/work/overlay/java mkdir -p $SRC_DIR/work/overlay/java/opt tar -xvf \ $JAVA_ARCHIVE \ -C $SRC_DIR/work/overlay/java/opt cd $SRC_DIR/work/overlay/java/opt mv $[ls -d *] java mkdir $SRC_DIR/work/overlay/java/bin for FILE in [$[ls java/bin]] { ln -s ../opt/java/bin/$FILE ../bin/$FILE } cp -r $SRC_DIR/work/overlay/java/* $SRC_DIR/work/src/minimal_overlay echo "Java has been installed." cd $SRC_DIR (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRC_DIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: spids: [51 53] ) } spids: [50] ) ] spids: [50] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:JAVA_ARCHIVE) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(-i)} {(Lit_Other "^") (JAVA_ARCHIVE)} {(.config)}) (C {(cut)} {(-f2)} {(-d) (SQ <"=">)}) ] negated: False ) ] ) left_token: spids: [61 81] ) ) } spids: [59] ) ] spids: [59] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$JAVA_ARCHIVE"))} {(Lit_Other "=")} {(DQ )} {(Lit_Other "]")} ) terminator: ) ] action: [ (C {(echo)} {(DQ ("ERROR: configuration property 'JAVA_ARCHIVE' is not set."))}) (C {(exit)} {(1)}) ] spids: [-1 102] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {(DQ ($ VSub_Name "$JAVA_ARCHIVE"))} {(Lit_Other "]")} ) terminator: ) ] action: [ (C {(echo)} {(DQ ("ERROR: configuration property 'JAVA_ARCHIVE' points to nonexistent file."))} ) (C {(exit)} {(1)}) ] spids: [116 132] ) ] spids: [-1 146] ) (C {(rm)} {(-rf)} {($ VSub_Name "$SRC_DIR") (/work/overlay/java)}) (C {(mkdir)} {(-p)} {($ VSub_Name "$SRC_DIR") (/work/overlay/java/opt)}) (C {(tar)} {(-xvf)} {($ VSub_Name "$JAVA_ARCHIVE")} {(-C)} {($ VSub_Name "$SRC_DIR") (/work/overlay/java/opt)} ) (C {(cd)} {($ VSub_Name "$SRC_DIR") (/work/overlay/java/opt)}) (C {(mv)} { (CommandSubPart command_list: (CommandList children:[(C {(ls)} {(-d)} {(Lit_Other "*")})]) left_token: spids: [187 193] ) } {(java)} ) (C {(mkdir)} {($ VSub_Name "$SRC_DIR") (/work/overlay/java/bin)}) (ForEach iter_name: FILE iter_words: [ { (CommandSubPart command_list: (CommandList children:[(C {(ls)} {(java/bin)})]) left_token: spids: [210 214] ) } ] do_arg_iter: False body: (DoGroup children: [ (C {(ln)} {(-s)} {(../opt/java/bin/) ($ VSub_Name "$FILE")} {(../bin/) ($ VSub_Name "$FILE")}) ] spids: [216 229] ) spids: [209 -1] ) (C {(cp)} {(-r)} {($ VSub_Name "$SRC_DIR") (/work/overlay/java/) (Lit_Other "*")} {($ VSub_Name "$SRC_DIR") (/work/src/minimal_overlay)} ) (C {(echo)} {(DQ ("Java has been installed."))}) (C {(cd)} {($ VSub_Name "$SRC_DIR")}) ] )