summaryrefslogtreecommitdiff
path: root/devenv.nix
blob: 8c8819e5e7209092158ecb95687ca53b7dfe2623 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
{ pkgs, lib, config, inputs, ... }:

rec {
  # https://devenv.sh/basics/
  env = {
    GREET = "devenv";

    # Fixes failure to launch viewer due to missing OpenGL context
    PYOPENGL_PLATFORM = "glx";
    
    # Fixes missing linux input headers (supplied by pkgs.linuxHeaders)
    C_INCLUDE_PATH = "${pkgs.linuxHeaders}/include";
  };
  # https://devenv.sh/packages/
  packages = with pkgs; [
    git

    # Graphics dependencies
    xorg.libX11
    libGL
    xorg.libXrender
    xorg.libXrandr
    libglibutil
    glib
    glfw-wayland
    glew
    openblas
    zlib

    # Linux kernel headers, needed for input
    linuxHeaders
  ];

  # https://devenv.sh/languages/
  # languages.rust.enable = true;

  # https://devenv.sh/processes/
  # processes.cargo-watch.exec = "cargo-watch";

  # https://devenv.sh/services/
  # services.postgres.enable = true;

  # https://devenv.sh/scripts/
  scripts = {
    hello.exec = ''
      echo hello from $GREET
    '';
    drone-sim.exec = ''
      echo "Running demo drone simulation..."
      python ./src/interactive_drone.py
    '';
  };

  enterShell = ''
    hello
    git --version
  '';

  languages.python = {
    enable = true;
    venv.enable = true;
  };
  # https://devenv.sh/tasks/
  # tasks = {
  #   "myproj:setup".exec = "mytool build";
  #   "devenv:enterShell".after = [ "myproj:setup" ];
  # };

  # https://devenv.sh/tests/
  enterTest = ''
    echo "Running tests"
    git --version | grep --color=auto "${pkgs.git.version}"
  '';

  # https://devenv.sh/pre-commit-hooks/
  # pre-commit.hooks.shellcheck.enable = true;

  # See full reference at https://devenv.sh/reference/options/
}