mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-11 14:51:49 +00:00
Add support for NixOS
This commit is contained in:
parent
edacf8275e
commit
59c1d021b7
46
nvm.sh
46
nvm.sh
@ -1874,6 +1874,7 @@ nvm_get_os() {
|
|||||||
NVM_UNAME="$(command uname -a)"
|
NVM_UNAME="$(command uname -a)"
|
||||||
local NVM_OS
|
local NVM_OS
|
||||||
case "${NVM_UNAME}" in
|
case "${NVM_UNAME}" in
|
||||||
|
Linux\ nixos\ *) NVM_OS=linux-nixos ;;
|
||||||
Linux\ *) NVM_OS=linux ;;
|
Linux\ *) NVM_OS=linux ;;
|
||||||
Darwin\ *) NVM_OS=darwin ;;
|
Darwin\ *) NVM_OS=darwin ;;
|
||||||
SunOS\ *) NVM_OS=sunos ;;
|
SunOS\ *) NVM_OS=sunos ;;
|
||||||
@ -1989,6 +1990,37 @@ nvm_get_mirror() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# args: version path
|
||||||
|
nvm_nixos_postinstall() {
|
||||||
|
if [ "$#" -ne 1 ]; then
|
||||||
|
nvm_err 'nvm_nixos_postinstall needs 1 parameter'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local VERSION_PATH
|
||||||
|
VERSION_PATH="${1}"
|
||||||
|
|
||||||
|
local DE_GENERATE_TEMPLATE_PATH="${NVM_DIR}/template.nix"
|
||||||
|
|
||||||
|
mv "${VERSION_PATH}/bin/node" "${VERSION_PATH}/bin/node.bin" || return 1
|
||||||
|
|
||||||
|
if [[ ! -f "${DE_GENERATE_TEMPLATE_PATH}" ]]; then
|
||||||
|
echo '{ pkgs ? import <nixpkgs> {} }: #
|
||||||
|
(pkgs.buildFHSUserEnv {
|
||||||
|
name = "nvm-env";
|
||||||
|
targetPkgs = pkgs: with pkgs; [ coreutils ];
|
||||||
|
multiPkgs = pkgs: with pkgs; [];
|
||||||
|
runScript = "bash";
|
||||||
|
}).env
|
||||||
|
' >> "${DE_GENERATE_TEMPLATE_PATH}" || return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "#!/usr/bin/env bash
|
||||||
|
echo $VERSION_PATH/bin/node.bin \$@ | nix-shell --quiet \"${DE_GENERATE_TEMPLATE_PATH}\"
|
||||||
|
" >> "${VERSION_PATH}/bin/node" || return 1
|
||||||
|
command chmod +x "${VERSION_PATH}/bin/node" || return 1
|
||||||
|
}
|
||||||
|
|
||||||
# args: os, prefixed version, version, tarball, extract directory
|
# args: os, prefixed version, version, tarball, extract directory
|
||||||
nvm_install_binary_extract() {
|
nvm_install_binary_extract() {
|
||||||
if [ "$#" -ne 5 ]; then
|
if [ "$#" -ne 5 ]; then
|
||||||
@ -2033,6 +2065,10 @@ nvm_install_binary_extract() {
|
|||||||
command mv "${TMPDIR}/"* "${VERSION_PATH}" || return 1
|
command mv "${TMPDIR}/"* "${VERSION_PATH}" || return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "_${NVM_OS}" = '_linux-nixos' ]; then
|
||||||
|
nvm_nixos_postinstall "${VERSION_PATH}"
|
||||||
|
fi
|
||||||
|
|
||||||
command rm -rf "${TMPDIR}"
|
command rm -rf "${TMPDIR}"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
@ -2161,7 +2197,13 @@ nvm_get_download_slug() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${KIND}" = 'binary' ]; then
|
if [ "${KIND}" = 'binary' ]; then
|
||||||
nvm_echo "${FLAVOR}-${VERSION}-${NVM_OS}-${NVM_ARCH}"
|
local NORMALIZED_NVM_OS="${NVM_OS}"
|
||||||
|
case "_${NVM_OS}" in
|
||||||
|
"_linux"*)
|
||||||
|
NORMALIZED_NVM_OS="linux"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
nvm_echo "${FLAVOR}-${VERSION}-${NORMALIZED_NVM_OS}-${NVM_ARCH}"
|
||||||
elif [ "${KIND}" = 'source' ]; then
|
elif [ "${KIND}" = 'source' ]; then
|
||||||
nvm_echo "${FLAVOR}-${VERSION}"
|
nvm_echo "${FLAVOR}-${VERSION}"
|
||||||
fi
|
fi
|
||||||
@ -2345,7 +2387,7 @@ nvm_get_make_jobs() {
|
|||||||
NVM_OS="$(nvm_get_os)"
|
NVM_OS="$(nvm_get_os)"
|
||||||
local NVM_CPU_CORES
|
local NVM_CPU_CORES
|
||||||
case "_${NVM_OS}" in
|
case "_${NVM_OS}" in
|
||||||
"_linux")
|
"_linux"*)
|
||||||
NVM_CPU_CORES="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)"
|
NVM_CPU_CORES="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)"
|
||||||
;;
|
;;
|
||||||
"_freebsd" | "_darwin" | "_openbsd")
|
"_freebsd" | "_darwin" | "_openbsd")
|
||||||
|
Loading…
Reference in New Issue
Block a user