Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- { lib, config, pkgs, ... }:
- with lib;
- let
- cfg = config.mine.jetbrains;
- getNewestFromChannels = name: pkgs.versions.latestVersion ((_: map (channel: (getAttr name channel.jetbrains)) channels) name);
- channels = (config.nixpkgs.config.packageOverrides {});
- in
- {
- options.mine.jetbrains = {
- enable = mkEnableOption "JetBrains programs";
- packages = mkOption {
- type = types.listOf types.package;
- # TODO: Option / switch for community/professional editions on all packages?
- default = [ pkgs.jetbrains.clion pkgs.jetbrains.idea-ultimate pkgs.jetbrains.webstorm pkgs.jetbrains.datagrip pkgs.jetbrains.pycharm-professional ];
- example = [ pkgs.jetbrains.phpstorm pkgs.jetbrains.pycharm-community ];
- description = "The JetBrains packages to install";
- };
- useLatest = mkEnableOption "using latest JetBrains programs";
- };
- config = mkIf cfg.enable {
- mine.userConfig = {
- home.packages =
- if cfg.useLatest
- then lists.map getNewestFromChannels cfg.packages channels
- else cfg.packages;
- };
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement