38 lines
952 B
Nix
38 lines
952 B
Nix
{ pkgs ? import <nixpkgs> {} }:
|
|
pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
nodejs
|
|
];
|
|
shellHook = ''
|
|
function log_header {
|
|
echo -ne "==> \e[32m\e[1m$1\e[0m\n"
|
|
}
|
|
function log_subheader {
|
|
echo -ne "--> \e[33m\e[1m$1\e[0m\n"
|
|
}
|
|
function log {
|
|
echo -ne " $1\n"
|
|
}
|
|
|
|
echo ""
|
|
log_header "node_environment"
|
|
mkdir -p .npm/bin
|
|
export PATH=$PWD/.npm/bin:$PATH
|
|
log_subheader "upgrading npm"
|
|
npm install -g npm --prefix $PWD/.npm
|
|
echo ""
|
|
if [ -s global_packages.txt ]; then
|
|
log_subheader "found global_packages.txt, installing packages"
|
|
cat global_packages.txt | xargs npm install -g --prefix $PWD/.npm
|
|
echo ""
|
|
fi
|
|
if [ -s package.json ]; then
|
|
log_subheader "found package.json, running 'npm install'"
|
|
npm install
|
|
echo ""
|
|
fi
|
|
log_header "package versions"
|
|
log "node $(node --version)"
|
|
log "npm $(npm --version)"
|
|
'';
|
|
}
|