Skip to content
Snippets Groups Projects
nwjs_version_for_platform.sh 1.41 KiB
Newer Older
#!/bin/bash
# nwjs_version_for_platform.sh
#
# Determine the version of nw.js that Purr Data should use on a given platform.
#
# Variables "$os" and "$arch" can be set in the environment, or autodetected.

set -e

if [ -z "$os" ]; then
	os=`uname | tr '[:upper:]' '[:lower:]'`
	if [[ $os == *"mingw32"* ]]; then
		os=win
	elif [[ $os == "darwin" ]]; then
		os=osx
	fi
fi

if [ -z "$arch" ]; then
	if [ `getconf LONG_BIT` -eq 32 ]; then
		arch="ia32"
	else
		arch="x64"
	fi

	# for rpi
	if [ `uname -m` == "armv7l" ]; then
		arch="armv7l"
	fi

	# for pinebook, probably also rpi 4
	if [ `uname -m` == "aarch64" ]; then
		arch="armv7l"
	fi
fi

# MSYS: Pick the right architecture depending on whether we're
# running in the 32 or 64 bit version of the MSYS shell.
if [[ $os == "win" ]]; then
	arch="ia32"
elif [[ $os == "win64" ]]; then
	arch="x64"
fi

if [[ $os == "win" || $os == "win64" || $os == "osx" ]]; then
	ext="zip"
else
	ext="tar.gz"
fi

if [[ $osx_version == "10.8" ]]; then
	# We need the lts version to be able to run on legacy systems.
	nwjs_version="v0.14.7"
else
	# temporary kluge for rpi-- only 0.15.1 is available atm
	if [ $arch == "armv7l" ]; then
		nwjs_version="v0.17.6"
	else
		nwjs_version="v0.24.4"
	fi
fi

nwjs="nwjs-sdk"
if [[ $os == "win64" ]]; then
	nwjs_dirname=${nwjs}-${nwjs_version}-win-${arch}
else
	nwjs_dirname=${nwjs}-${nwjs_version}-${os}-${arch}
fi
nwjs_filename=${nwjs_dirname}.${ext}

echo $nwjs_filename