diff on idrac 6 console script

From elyograg, 4 Months ago, written in Diff-output, viewed 27 times. This paste will give up the ghost in 6 Months.
URL https://paste.elyograg.org/view/9c49ac38 Embed
Download Paste or View Raw
  1. diff --git a/README.md b/README.md
  2. index 5639c4b..102e00f 100644
  3. --- a/README.md
  4. +++ b/README.md
  5. @@ -2,12 +2,15 @@
  6.  Start the iDAC6 virtual console on the DELL PowerEdge R610 without the need of Java Web Start or accessing it from the web interface.
  7.  
  8.  ## Requirements
  9. -Java installed
  10. +Java 7 installed
  11.  
  12.  ## Usage
  13.  ```
  14.  Usage:
  15.      console.sh [OPTIONS]
  16. +    If Java 7 is not the default java on your system, use this command instead:
  17. +    JAVA_HOME=/path/to/java7 console.sh [OPTIONS]
  18. +    The correct JAVA_HOME directory is where bin/java lives.
  19.  
  20.  Open a virtual console to the DELL PowerEdge R610.
  21.  
  22. diff --git a/console.sh b/console.sh
  23. index 561fc1e..0bb0c2f 100755
  24. --- a/console.sh
  25. +++ b/console.sh
  26. @@ -6,7 +6,7 @@
  27.  usage () {
  28.    cat <<EOF
  29.  Usage:
  30. -    $(basename $0) [OPTIONS]
  31. +    $(basename "$0") [OPTIONS]
  32.  
  33.  Open a virtual console to the DELL PowerEdge R610.
  34.  
  35. @@ -29,7 +29,16 @@ The following variables can also be set as environment variables:
  36.  EOF
  37.  }
  38.  
  39. -SCRIPT_DIR="$( cd "$(dirname "$0")" &> /dev/null; pwd -P )"
  40. +echoerr () { echo "$@" 1>&2; }
  41. +
  42. +die () {
  43. +  MSG="$1"
  44. +  shift
  45. +  echoerr "${MSG}"
  46. +  exit 1
  47. +}
  48. +
  49. +SCRIPT_DIR="$( cd "$(dirname "$0")" &> /dev/null || die "can't cd to $(dirname "$0")"; pwd -P )"
  50.  
  51.  while getopts "h:u:p:ki" OPTIONS; do
  52.    case ${OPTIONS} in
  53. @@ -42,7 +51,17 @@ while getopts "h:u:p:ki" OPTIONS; do
  54.    esac
  55.  done
  56.  
  57. -if [ -z ${IDRAC_HOST+x} ]; then
  58. +if [ -z "${JAVA_HOME}" ]; then
  59. +  JAVA_PATH="$(which java)"
  60. +  if [ -x "${JAVA_PATH}" ]; then
  61. +    JAVA_BIN_PATH="$(dirname "${JAVA_PATH}")"
  62. +    JAVA_HOME="$(dirname "${JAVA_BIN_PATH}")"
  63. +  else
  64. +    die "No java executable found on PATH"
  65. +  fi
  66. +fi
  67. +
  68. +if [ -z "${IDRAC_HOST+x}" ]; then
  69.    echo -e "Host not specified.\n"
  70.    usage
  71.    exit 1
  72. @@ -54,22 +73,22 @@ else
  73.    IDRAC_PASSWD_FILE=${IDRAC_PASSWD}
  74.  fi
  75.  
  76. -if [ -f ${IDRAC_PASSWD_FILE} ]; then
  77. -  IDRAC_PASSWD=$(cat ${IDRAC_PASSWD_FILE} | xargs)
  78. -elif [ -f ${PWD}/${IDRAC_PASSWD_FILE} ]; then
  79. -  IDRAC_PASSWD=$(cat ${PWD}/${IDRAC_PASSWD_FILE} | xargs)
  80. -elif [ -f ${HOME}/${IDRAC_PASSWD_FILE} ]; then
  81. -  IDRAC_PASSWD=$(cat ${HOME}/${IDRAC_PASSWD_FILE} | xargs)
  82. -elif [ -f ${SCRIPT_DIR}/${IDRAC_PASSWD_FILE} ]; then
  83. -  IDRAC_PASSWD=$(cat ${SCRIPT_DIR}/${IDRAC_PASSWD_FILE} | xargs)
  84. +if [ -f "${IDRAC_PASSWD_FILE}" ]; then
  85. +  IDRAC_PASSWD="$(xargs < "${IDRAC_PASSWD_FILE}")"
  86. +elif [ -f "${PWD}/${IDRAC_PASSWD_FILE}" ]; then
  87. +  IDRAC_PASSWD="$(xargs < "${PWD}/${IDRAC_PASSWD_FILE}")"
  88. +elif [ -f "${HOME}/${IDRAC_PASSWD_FILE}" ]; then
  89. +  IDRAC_PASSWD="$(xargs < "${HOME}/${IDRAC_PASSWD_FILE}")"
  90. +elif [ -f "${SCRIPT_DIR}/${IDRAC_PASSWD_FILE}" ]; then
  91. +  IDRAC_PASSWD="$(xargs < "${SCRIPT_DIR}/${IDRAC_PASSWD_FILE}")"
  92.  fi
  93.  
  94.  if [ -z ${IDRAC_PASSWD+x} ]; then
  95. -  read -sp "Password for ${IDRAC_USER} on ${IDRAC_HOST}: " IDRAC_PASSWD
  96. +  read -rsp "Password for ${IDRAC_USER} on ${IDRAC_HOST}: " IDRAC_PASSWD
  97.    echo
  98.  fi
  99.  
  100. -if [ "$INIT" == "true" ] || [ ! -d ${SCRIPT_DIR}/bin ] || [ ! -d ${SCRIPT_DIR}/lib ] || [ ! -d ${SCRIPT_DIR}/conf ]; then
  101. +if [ "$INIT" == "true" ] || [ ! -d "${SCRIPT_DIR}/bin" ] || [ ! -d "${SCRIPT_DIR}/lib" ] || [ ! -d "${SCRIPT_DIR}/conf" ]; then
  102.    ARCH=$(uname -m)
  103.    case "$OSTYPE" in
  104.      darwin*)  FILES=MACOS_${ARCH^^}_LIBS ;;
  105. @@ -80,49 +99,54 @@ if [ "$INIT" == "true" ] || [ ! -d ${SCRIPT_DIR}/bin ] || [ ! -d ${SCRIPT_DIR}/l
  106.    esac
  107.  
  108.    SOFTWARE_URL="${PROTO:-https}://${IDRAC_HOST}/software/"
  109. -  WINDOWS_X86_LIBS="avctKVMIOWin32.jar avctVMWin32.jar"
  110. -  WINDOWS_X86_64_LIBS="avctKVMIOWin64.jar avctVMWin64.jar"
  111. -  WINDOWS_AMD64_LIBS="avctKVMIOWin64.jar avctVMWin64.jar"
  112. -  LINUX_X86_LIBS="avctKVMIOLinux32.jar avctVMLinux32.jar"
  113. -  LINUX_I386_LIBS="avctKVMIOLinux32.jar avctVMLinux32.jar"
  114. -  LINUX_I586_LIBS="avctKVMIOLinux32.jar avctVMLinux32.jar"
  115. -  LINUX_I686_LIBs="avctKVMIOLinux32.jar avctVMLinux32.jar"
  116. -  LINUX_AMD64_LIBS="avctKVMIOLinux64.jar avctVMLinux64.jar"
  117. -  LINUX_X86_64_LIBS="avctKVMIOLinux64.jar avctVMLinux64.jar"
  118. -  MACOS_X86_64_LIBS="avctKVMIOMac64.jar avctVMMac64.jar"
  119. +  export WINDOWS_X86_LIBS="avctKVMIOWin32.jar avctVMWin32.jar"
  120. +  export WINDOWS_X86_64_LIBS="avctKVMIOWin64.jar avctVMWin64.jar"
  121. +  export WINDOWS_AMD64_LIBS="avctKVMIOWin64.jar avctVMWin64.jar"
  122. +  export LINUX_X86_LIBS="avctKVMIOLinux32.jar avctVMLinux32.jar"
  123. +  export LINUX_I386_LIBS="avctKVMIOLinux32.jar avctVMLinux32.jar"
  124. +  export LINUX_I586_LIBS="avctKVMIOLinux32.jar avctVMLinux32.jar"
  125. +  export LINUX_I686_LIBs="avctKVMIOLinux32.jar avctVMLinux32.jar"
  126. +  export LINUX_AMD64_LIBS="avctKVMIOLinux64.jar avctVMLinux64.jar"
  127. +  export LINUX_X86_64_LIBS="avctKVMIOLinux64.jar avctVMLinux64.jar"
  128. +  export MACOS_X86_64_LIBS="avctKVMIOMac64.jar avctVMMac64.jar"
  129.    JAR="avctKVM.jar"
  130.  
  131. -  if curl -sS ${SOFTWARE_URL} 2>&1 | grep -q "curl: (60)"; then
  132. +  if curl -sS "${SOFTWARE_URL}" 2>&1 | grep -q "curl: (60)"; then
  133.      echo -e "SSL certificate problem: self signed certificate.\n\nTry with the -k (insecure) option for HTTP instead of HTTPS."
  134.      exit 1
  135.    fi
  136.  
  137. -  mkdir -p ${SCRIPT_DIR}/{bin,lib,conf}
  138. +  mkdir -p "${SCRIPT_DIR}"/{bin,lib,conf}
  139.    for FILE in ${!FILES}; do
  140. -    curl -s ${SOFTWARE_URL}${FILE} -o ${SCRIPT_DIR}/lib/${FILE}
  141. -    cd ${SCRIPT_DIR}/lib; jar -xvf ${FILE} >/dev/null; cd - >/dev/null
  142. -    rm -r ${SCRIPT_DIR}/lib/${FILE} ${SCRIPT_DIR}/lib/META-INF
  143. +    curl -s "${SOFTWARE_URL}${FILE}" -o "${SCRIPT_DIR}/lib/${FILE}"
  144. +    cd "${SCRIPT_DIR:?}/lib" || die "can't cd to ${SCRIPT_DIR:?}/lib"; jar -xvf "${FILE}" >/dev/null; cd - >/dev/null || die "can't cd to -"
  145. +    rm -r "${SCRIPT_DIR:?}/lib/${FILE}" "${SCRIPT_DIR}/lib/META-INF"
  146.    done
  147.  
  148. -  curl -s ${SOFTWARE_URL}${JAR} -o ${SCRIPT_DIR}/bin/${JAR}
  149. +  curl -s "${SOFTWARE_URL}${JAR}" -o "${SCRIPT_DIR}/bin/${JAR}"
  150.  
  151. -  cp ${JAVA_HOME}/conf/security/java.security ${SCRIPT_DIR}/conf/java.security
  152. -  sed -i 's/jdk.tls.disabledAlgorithms=\(.*\) RC4,\(.*\)/jdk.tls.disabledAlgorithms=\2/' ${SCRIPT_DIR}/conf/java.security
  153. +  cp "${JAVA_HOME}/conf/security/java.security" "${SCRIPT_DIR}/conf/java.security"
  154. +  sed -i 's/jdk.tls.disabledAlgorithms=\(.*\) RC4,\(.*\)/jdk.tls.disabledAlgorithms=\2/' "${SCRIPT_DIR}/conf/java.security"
  155.  fi
  156.  
  157.  echo "Connecting to ${IDRAC_HOST} as ${IDRAC_USER:-root}."
  158. -java -cp ${SCRIPT_DIR}/bin/avctKVM.jar \
  159. -  -Djava.library.path=${SCRIPT_DIR}/lib/ \
  160. -  -Djava.security.properties=${SCRIPT_DIR}/conf/java.security \
  161. +if [ -x "$(which screen)" ]; then
  162. +  SCREEN_STUFF="screen -d -m -S idrac6console "
  163. +else
  164. +  SCREEN_STUFF=""
  165. +fi
  166. +${SCREEN_STUFF} "${JAVA_HOME}/bin/java" -cp "${SCRIPT_DIR}/bin/avctKVM.jar" \
  167. +  -Djava.library.path="${SCRIPT_DIR}/lib/" \
  168. +  -Djava.security.properties="${SCRIPT_DIR}/conf/java.security" \
  169.    com.avocent.idrac.kvm.Main \
  170. -  ip=${IDRAC_HOST} \
  171. +  ip="${IDRAC_HOST}" \
  172.    kmport=5900 \
  173.    vport=5900 \
  174. -  user=${IDRAC_USER:-root} \
  175. -  passwd=${IDRAC_PASSWD:-calvin} \
  176. +  user="${IDRAC_USER:-root}" \
  177. +  passwd="${IDRAC_PASSWD:-calvin}" \
  178.    apcp=1 \
  179.    version=2 \
  180.    vm=1 \
  181.    vmprivilege=true \
  182.    reconnect=1 \
  183. -  helpurl=${PROTO:-https}://${IDRAC_HOST}/help/contents.html
  184. +  helpurl="${PROTO:-https}://${IDRAC_HOST}/help/contents.html"
  185.  

Reply to "diff on idrac 6 console script"

Here you can reply to the paste above