Advertisement
evanjs

jetbrains.nix - WIP

Aug 17th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. { lib, config, pkgs, ... }:
  2.  
  3. with lib;
  4.  
  5. let
  6.  
  7. cfg = config.mine.jetbrains;
  8. getNewestFromChannels = name: pkgs.versions.latestVersion ((_: map (channel: (getAttr name channel.jetbrains)) channels) name);
  9. channels = (config.nixpkgs.config.packageOverrides {});
  10. in
  11. {
  12. options.mine.jetbrains = {
  13. enable = mkEnableOption "JetBrains programs";
  14. packages = mkOption {
  15. type = types.listOf types.package;
  16. # TODO: Option / switch for community/professional editions on all packages?
  17. default = [ pkgs.jetbrains.clion pkgs.jetbrains.idea-ultimate pkgs.jetbrains.webstorm pkgs.jetbrains.datagrip pkgs.jetbrains.pycharm-professional ];
  18. example = [ pkgs.jetbrains.phpstorm pkgs.jetbrains.pycharm-community ];
  19. description = "The JetBrains packages to install";
  20. };
  21. useLatest = mkEnableOption "using latest JetBrains programs";
  22. };
  23.  
  24. config = mkIf cfg.enable {
  25. mine.userConfig = {
  26. home.packages =
  27. if cfg.useLatest
  28. then lists.map getNewestFromChannels cfg.packages channels
  29. else cfg.packages;
  30. };
  31. };
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement