2020-05-13 15:17:34 +07:00
|
|
|
#!/usr/bin/env sh
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
main() {
|
2020-05-15 08:37:58 +07:00
|
|
|
# Grabs the major version of node from $npm_config_user_agent which looks like
|
|
|
|
# yarn/1.21.1 npm/? node/v14.2.0 darwin x64
|
|
|
|
major_node_version=$(echo "$npm_config_user_agent" | sed -n 's/.*node\/v\([^.]*\).*/\1/p')
|
|
|
|
if [ "$major_node_version" -lt 12 ]; then
|
|
|
|
echo "code-server currently requires at least node v12"
|
|
|
|
echo "We have detected that you are on node v$major_node_version"
|
|
|
|
echo "See https://github.com/cdr/code-server/issues/1633"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2020-05-13 16:06:11 +07:00
|
|
|
case "${npm_config_user_agent-}" in npm*)
|
|
|
|
# We are running under npm.
|
|
|
|
if [ "${npm_config_unsafe_perm-}" != "true" ]; then
|
|
|
|
echo "Please pass --unsafe-perm to npm to install code-server"
|
|
|
|
echo "Otherwise the postinstall script does not have permissions to run"
|
|
|
|
echo "See https://docs.npmjs.com/misc/config#unsafe-perm"
|
|
|
|
echo "See https://stackoverflow.com/questions/49084929/npm-sudo-global-installation-unsafe-perm"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2020-05-19 08:30:24 +07:00
|
|
|
if ! vscode_yarn; then
|
2020-05-13 16:06:11 +07:00
|
|
|
echo "You may not have the required dependencies to build the native modules."
|
|
|
|
echo "Please see https://github.com/cdr/code-server/blob/master/doc/npm.md"
|
|
|
|
exit 1
|
|
|
|
fi
|
2020-05-13 15:17:34 +07:00
|
|
|
}
|
|
|
|
|
2020-05-19 08:30:24 +07:00
|
|
|
vscode_yarn() {
|
|
|
|
cd lib/vscode
|
|
|
|
yarn --production --frozen-lockfile
|
|
|
|
cd extensions
|
2020-07-23 05:31:24 +07:00
|
|
|
# Cannot use --production here. The postinstall here uses a dev dependency.
|
|
|
|
yarn --frozen-lockfile
|
2020-05-19 08:30:24 +07:00
|
|
|
}
|
|
|
|
|
2020-05-13 15:17:34 +07:00
|
|
|
main "$@"
|