From bb7d16565afaf3071ecc466cdbbf15ecb4a61d03 Mon Sep 17 00:00:00 2001 From: Denis Lehmann Date: Mon, 7 Jan 2019 15:47:29 +0100 Subject: [PATCH] Add python and node virtualenvs --- README.md | 2 +- node_environment/default.nix | 19 +++++++++++++++++++ node_environment/global_packages.txt | 0 python_environment/default.nix | 20 ++++++++++++++++++++ python_environment/requirements.txt | 0 5 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 node_environment/default.nix create mode 100644 node_environment/global_packages.txt create mode 100644 python_environment/default.nix create mode 100644 python_environment/requirements.txt diff --git a/README.md b/README.md index b30abe9..f52dd7c 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,4 @@ This is a repository for different virtual environments, which can be used with the **Nix** package manager. -Just clone the content of the desired folder to your project, add your required packages to the `requirements.txt` file and run `nix-shell`. +Just clone the content of the desired folder to your project, add your required packages to the `*.txt` file and run `nix-shell`. diff --git a/node_environment/default.nix b/node_environment/default.nix new file mode 100644 index 0000000..88581ef --- /dev/null +++ b/node_environment/default.nix @@ -0,0 +1,19 @@ +with import {}; + +stdenv.mkDerivation { + name = "myNodeEnv"; + buildInputs = with pkgs; [ + nodejs + ]; + src = null; + shellHook = '' + mkdir -p .npm + if [ -s global_packages.txt ]; then + cat global_packages.txt | xargs npm install -g --prefix $PWD/.npm + fi + if [ -s package.json ]; then + npm install + fi + export PATH=$PWD/.npm/bin:$PATH + ''; +} diff --git a/node_environment/global_packages.txt b/node_environment/global_packages.txt new file mode 100644 index 0000000..e69de29 diff --git a/python_environment/default.nix b/python_environment/default.nix new file mode 100644 index 0000000..bd27798 --- /dev/null +++ b/python_environment/default.nix @@ -0,0 +1,20 @@ +with import {}; + +stdenv.mkDerivation { + name = "myPythonEnv"; + buildInputs = with pkgs; [ + python36Full + python36Packages.virtualenv + python36Packages.pip + ]; + src = null; + shellHook = '' + # set SOURCE_DATE_EPOCH so that we can use python wheels + SOURCE_DATE_EPOCH=$(date +%s) + virtualenv --no-setuptools venv + export PATH=$PWD/venv/bin:$PATH + if [ -s requirements.txt ]; then + pip install -r requirements.txt + fi + ''; +} diff --git a/python_environment/requirements.txt b/python_environment/requirements.txt new file mode 100644 index 0000000..e69de29