1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-12-29 13:19:47 +01:00
home-manager/modules/programs/jetbrains-remote.nix
2024-02-06 00:29:23 +01:00

38 lines
1.1 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.jetbrains-remote;
in {
meta.maintainers = with lib.maintainers; [ genericnerdyusername ];
options.programs.jetbrains-remote = {
enable = mkEnableOption "JetBrains remote development system";
ides = mkOption {
type = types.listOf types.package;
default = [ ];
example = literalExpression ''
with pkgs.jetbrains; [ clion pycharm-professional ];
'';
description = ''
IDEs accessible to the JetBrains remote development system.
'';
};
};
config = mkIf (cfg.enable && cfg.ides != [ ]) {
home.activation.jetBrainsRemote = let
mkLine = ide:
# Errors out if the symlink already exists
"${ide}/bin/${ide.meta.mainProgram}-remote-dev-server registerBackendLocationForGateway || true";
lines = map mkLine cfg.ides;
linesStr = ''
rm $HOME/.cache/JetBrains/RemoteDev/userProvidedDist/_nix_store*
'' + concatStringsSep "\n" lines;
in hm.dag.entryAfter [ "writeBoundary" ] linesStr;
};
}