aboutsummaryrefslogtreecommitdiff
path: root/nixos/modules/develop.nix
blob: bf5c2de9dfc32fcf9293892924da3cc67f239b01 (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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
nixpkgs: { config, lib, pkgs, ... }:

with lib;

let

  armv6l = (import nixpkgs.outPath {
      localSystem = config.system.build.toplevel.system;
      crossSystem = {
        config = "armv6l-none-eabi";
        libc = "newlib";
      };
    });
  armv7l = (import nixpkgs.outPath {
      localSystem = config.system.build.toplevel.system;
      crossSystem = {
        config = "armv7l-none-eabi";
        libc = "newlib";
      };
    });

in {

  options = {
    cynerd.develop = mkOption {
      type = types.bool;
      default = false;
      description = "If machine is about to be used for development.";
    };
  };

  config = mkIf config.cynerd.develop {
    cynerd.compile = true;
    environment.systemPackages = with pkgs; [
      # Tools
      tig gource hub github-cli # Git
      wlc # Weblate
      cloc
      openssl
      sterm

      # Nix
      nix-prefetch-git nix-prefetch-github nix-prefetch-scripts

      # C
      ccls bear
      check
      valgrind
      cppcheck flawfinder
      gdb
      lcov massif-visualizer

      # Shell
      dash # Posix shell
      bats
      shellcheck

      # Python
      python3 python3Packages.ipython
      twine
      python3Packages.pytest python3Packages.pytest-html #python3Packages.pytest-tap
      python3Packages.coverage
      python3Packages.python-lsp-black
      mypy
      pylint python3Packages.pydocstyle

      # Lua
      lua51Packages.luacheck

      # Ansible
      ansible

      # U-Boot
      ubootTools
      tftp-hpa

      # Network
      iperf2 iperf3
      wireshark
      inetutils

      # Gtk
      glade

      # Containers
      lxc lxd
      docker

      # Barcode generation
      barcode

      # D-Bus
      dfeet

      # Bare metal
      openocd
      #armv6l.buildPackages.gcc armv6l.buildPackages.gdb
      #armv7l.buildPackages.gcc armv7l.buildPackages.gdb
      pkgsCross.arm-embedded.buildPackages.gcc

    ];

  };

}