#!/bin/bash # Update node install & modules from Chromium project. set -e cd /usr/local/src/extensions if [[ ! -d nodejs ]]; then mkdir nodejs fi cd nodejs URL_GS_BASE='https://storage.googleapis.com/chromium-nodejs' URL_CHROMIUM_BASE='https://chromium.googlesource.com/chromium/src/+/HEAD' URL_DEPS="${URL_CHROMIUM_BASE}/DEPS?format=TEXT" URL_HASH_NODE="${URL_CHROMIUM_BASE}/third_party/node/linux/node-linux-x64.tar.gz.sha1?format=TEXT" URL_HASH_MOD="${URL_CHROMIUM_BASE}/third_party/node/node_modules.tar.gz.sha1?format=TEXT" hash=$(curl -s "${URL_DEPS}" | base64 -d) VER=$(echo "${hash}" | grep -o 'chromium-nodejs/[0-9.]*' | sort -u | cut -d/ -f2) hash=$(curl -s "${URL_HASH_NODE}" | base64 -d) dir='node-linux-x64' cur_hash=$(cat "${dir}/hash" 2>/dev/null || :) if [[ ${cur_hash} != "${hash}" ]]; then rm -rf "${dir}" "${cur_hash}" wget -m -nd "${URL_GS_BASE}/${VER}/${hash}" echo "Unpacking ${hash} into ${dir}" tar xf "${hash}" echo "${hash}" >"${dir}/hash" fi ln -sfT "${dir}" current hash=$(curl -s "${URL_HASH_MOD}" | base64 -d) dir='node_modules' cur_hash=$(cat "${dir}/hash" 2>/dev/null || :) if [[ ${cur_hash} != "${hash}" ]]; then rm -rf "${dir}" "${cur_hash}" wget -m -nd "${URL_GS_BASE}/${hash}" echo "Unpacking ${hash} into ${dir}" tar xf "${hash}" echo "${hash}" >"${dir}/hash" fi ln -sfT ../../node_modules/eslint/bin/eslint.js current/bin/eslint echo "Up-to-date now" exit 0 # This is for nodejs directly. URL_BASE='https://nodejs.org/dist/latest-v6.x' SUMS='SHASUMS256.txt' URL_SUMS="${URL_BASE}/${SUMS}" wget -m -nd "${URL_SUMS}" read sum tar < <(grep 'linux-x64.tar.xz' "${SUMS}") dir=${tar%.tar.xz} URL_TAR="${URL_BASE}/${tar}" wget -m -nd "${URL_TAR}" if [[ ! -d ${dir} ]] ; then tar xf "${tar}" ln -sfT "${dir}" current fi