|
|
- # minimum required node version
- REQUIRED_NODE_MAJOR=10
- REQUIRED_NODE_MINOR=13
-
- # minimum required npm version
- REQUIRED_NPM_MAJOR=5
- REQUIRED_NPM_MINOR=5
-
- pecho() { printf %s\\n "$*"; }
- log() { pecho "$@"; }
- error() { log "ERROR: $@" >&2; }
- fatal() { error "$@"; exit 1; }
- is_cmd() { command -v "$@" >/dev/null 2>&1; }
-
-
- get_program_version() {
- PROGRAM="$1"
- KIND="${2:-full}"
- PROGRAM_VERSION_STRING=$($PROGRAM --version)
- PROGRAM_VERSION_STRING=${PROGRAM_VERSION_STRING#"v"}
-
- DETECTED_MAJOR=$(pecho "$PROGRAM_VERSION_STRING" | cut -s -d "." -f 1)
- [ -n "$DETECTED_MAJOR" ] || fatal "Cannot extract $PROGRAM major version from version string \"$PROGRAM_VERSION_STRING\""
- case "$DETECTED_MAJOR" in
- ''|*[!0-9]*)
- fatal "$PROGRAM_LABEL major version from \"$VERSION_STRING\" is not a number. Detected: \"$DETECTED_MAJOR\""
- ;;
- esac
-
- DETECTED_MINOR=$(pecho "$PROGRAM_VERSION_STRING" | cut -s -d "." -f 2)
- [ -n "$DETECTED_MINOR" ] || fatal "Cannot extract $PROGRAM minor version from version string \"$PROGRAM_VERSION_STRING\""
- case "$DETECTED_MINOR" in
- ''|*[!0-9]*)
- fatal "$PROGRAM_LABEL minor version from \"$VERSION_STRING\" is not a number. Detected: \"$DETECTED_MINOR\""
- esac
-
- case $KIND in
- major)
- echo $DETECTED_MAJOR
- exit;;
- minor)
- echo $DETECTED_MINOR
- exit;;
- *)
- echo $DETECTED_MAJOR.$DETECTED_MINOR
- exit;;
- esac
-
- echo $VERSION
- }
-
-
- compute_node_args() {
- ARGS=""
-
- NODE_MAJOR=$(get_program_version "node" "major")
- [ "$NODE_MAJOR" -eq "10" ] && ARGS="$ARGS --experimental-worker"
-
- echo $ARGS
- }
-
-
- require_minimal_version() {
- PROGRAM_LABEL="$1"
- VERSION="$2"
- REQUIRED_MAJOR="$3"
- REQUIRED_MINOR="$4"
-
- VERSION_MAJOR=$(pecho "$VERSION" | cut -s -d "." -f 1)
- VERSION_MINOR=$(pecho "$VERSION" | cut -s -d "." -f 2)
-
- [ "$VERSION_MAJOR" -gt "$REQUIRED_MAJOR" ] || ([ "$VERSION_MAJOR" -eq "$REQUIRED_MAJOR" ] && [ "$VERSION_MINOR" -ge "$REQUIRED_MINOR" ]) \
- || fatal "Your $PROGRAM_LABEL version \"$VERSION_MAJOR.$VERSION_MINOR\" is too old. $PROGRAM_LABEL $REQUIRED_MAJOR.$REQUIRED_MINOR.x or higher is required."
- }
|