# 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