mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-03 08:58:47 +01:00 
			
		
		
		
	Add two shell.nix to enable easier development on nixos.
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -47,7 +47,6 @@ backups/
 | 
			
		||||
env/
 | 
			
		||||
venv/
 | 
			
		||||
db.sqlite3
 | 
			
		||||
shell.nix
 | 
			
		||||
 | 
			
		||||
# ansibles customs host
 | 
			
		||||
ansible/host_vars/*.yaml
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										34
									
								
								shell-static.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										34
									
								
								shell-static.nix
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
# This is a workaround meant for use with the nix package manager. If you don't know what it is or don't use it, please ignore this file.
 | 
			
		||||
# 
 | 
			
		||||
# The nk20 javascript static location are hardcoded for imperative system.
 | 
			
		||||
# This make ./manage.py collectstatic hard to use with nixos.
 | 
			
		||||
# 
 | 
			
		||||
# A workaround is to enter a FHSUserEnv with the static placed under /share/javascript/<static>.
 | 
			
		||||
# This emulate a debian like system and enable collecting static normally with ./manage.py collectstatics.
 | 
			
		||||
# The regular shell.nix should be enough for other configurations.
 | 
			
		||||
#
 | 
			
		||||
# Warning, you are still supposed to use pip package with a venv !
 | 
			
		||||
{ pkgs ? import <nixpkgs> {} }:
 | 
			
		||||
(pkgs.buildFHSUserEnv {
 | 
			
		||||
  name = "pipzone";
 | 
			
		||||
  targetPkgs = pkgs: (with pkgs;
 | 
			
		||||
  let
 | 
			
		||||
    fhs-static = stdenv.mkDerivation {
 | 
			
		||||
      name = "fhs-static";
 | 
			
		||||
      buildCommand = ''
 | 
			
		||||
      mkdir -p $out/share/javascript/bootstrap4
 | 
			
		||||
      mkdir -p $out/share/javascript/jquery
 | 
			
		||||
      ln -s ${python39Packages.xstatic-bootstrap}/lib/python3.9/site-packages/xstatic/pkg/bootstrap/data/* $out/share/javascript/bootstrap4
 | 
			
		||||
      ln -s ${python39Packages.xstatic-jquery}/lib/python3.9/site-packages/xstatic/pkg/jquery/data/* $out/share/javascript/jquery
 | 
			
		||||
    '';
 | 
			
		||||
    };
 | 
			
		||||
  in [
 | 
			
		||||
    fhs-static
 | 
			
		||||
    python39
 | 
			
		||||
    gettext
 | 
			
		||||
    python39Packages.pip
 | 
			
		||||
    python39Packages.virtualenv
 | 
			
		||||
    python39Packages.setuptools
 | 
			
		||||
  ]);
 | 
			
		||||
  runScript = "bash";
 | 
			
		||||
}).env
 | 
			
		||||
							
								
								
									
										23
									
								
								shell.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								shell.nix
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
# This is meant for use with the nix package manager. If you don't know what it is or don't use it, please ignore this file.
 | 
			
		||||
#
 | 
			
		||||
# This shell.nix contains all dependencies require to create a venv and pip install -r requirements.txt.
 | 
			
		||||
#
 | 
			
		||||
# Please check shell-static.nix for
 | 
			
		||||
{ pkgs ? import <nixpkgs> {} }:
 | 
			
		||||
pkgs.mkShell {
 | 
			
		||||
  buildInputs = with pkgs; [
 | 
			
		||||
    python39
 | 
			
		||||
    python39Packages.pip
 | 
			
		||||
    python39Packages.setuptools
 | 
			
		||||
    gettext
 | 
			
		||||
 | 
			
		||||
  ];
 | 
			
		||||
  shellHook = ''
 | 
			
		||||
    # Tells pip to put packages into $PIP_PREFIX instead of the usual locations.
 | 
			
		||||
    # See https://pip.pypa.io/en/stable/user_guide/#environment-variables.
 | 
			
		||||
    export PIP_PREFIX=$(pwd)/_build/pip_packages
 | 
			
		||||
    export PYTHONPATH="$PIP_PREFIX/${pkgs.python39.sitePackages}:$PYTHONPATH"
 | 
			
		||||
    export PATH="$PIP_PREFIX/bin:$PATH"
 | 
			
		||||
    unset SOURCE_DATE_EPOCH
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user