73 lines
1.9 KiB
Nix
73 lines
1.9 KiB
Nix
{
|
|
description = "frajtano: an ssh agent multiplexer";
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
systems,
|
|
}: let
|
|
inherit (nixpkgs) lib;
|
|
eachSystem = f:
|
|
lib.genAttrs (import systems) (system:
|
|
f {
|
|
inherit system;
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
ownPkgs = self.packages.${system};
|
|
});
|
|
in {
|
|
devShells = eachSystem ({
|
|
pkgs,
|
|
ownPkgs,
|
|
...
|
|
}: {
|
|
default = pkgs.beam.packages.erlang_26.callPackage ./shell.nix {
|
|
inherit ownPkgs;
|
|
};
|
|
});
|
|
packages = eachSystem ({pkgs, ...}: {
|
|
default = pkgs.beam.packages.erlang_26.callPackage ./default.nix {};
|
|
});
|
|
homeModules.default = {
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
cfg = config.bluepython508.frajtano;
|
|
in {
|
|
options.bluepython508.frajtano = {
|
|
enable = lib.mkEnableOption "frajtano";
|
|
dir = lib.mkOption {
|
|
description = "directory in which to place the listening socket";
|
|
default = "${config.home.homeDirectory}/.ssh/frajtano";
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
home.sessionVariables.FRAJTANO_DIR = cfg.dir;
|
|
home.packages = [self.packages.${pkgs.system}.default];
|
|
|
|
systemd.user.services.frajtano = {
|
|
Unit.Description = "frajtano";
|
|
Unit.After = ["default.target"];
|
|
Service.Environment = "'FRAJTANO_DIR=${cfg.dir}'";
|
|
Service.ExecStart = "${self.packages.${pkgs.system}.default}/bin/frajtano start";
|
|
Install.WantedBy = ["default.target"];
|
|
};
|
|
|
|
launchd.agents.frajtano = {
|
|
enable = true;
|
|
config = {
|
|
EnvironmentVariables = {
|
|
FRAJTANO_DIR = cfg.dir;
|
|
};
|
|
ProgramArguments = ["${self.packages.${pkgs.system}.default}/bin/frajtano" "start"];
|
|
RunAtLoad = true;
|
|
KeepAlive = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|