1
0
Fork 0
mirror of https://github.com/LnL7/nix-darwin.git synced 2024-12-14 11:57:34 +00:00

add ipfs service

This commit is contained in:
Jack Maloney 2023-06-18 00:25:24 -05:00
parent 7c16d31383
commit 1711db734e
No known key found for this signature in database
2 changed files with 71 additions and 0 deletions

View file

@ -53,6 +53,7 @@
./services/emacs.nix
./services/gitlab-runner.nix
./services/hercules-ci-agent
./services/ipfs.nix
./services/karabiner-elements
./services/khd
./services/kwm

70
modules/services/ipfs.nix Normal file
View file

@ -0,0 +1,70 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.ipfs;
in
{
meta.maintainers = [ "jmmaloney4" ];
options.services.ipfs = {
enable = mkOption {
type = types.bool;
default = false;
description = "Whether to enable the ipfs daemon.";
};
package = mkOption {
type = types.path;
default = pkgs.kubo;
# defaultText = "pkgs.kubo";
description = ''
The ipfs package to use.
'';
};
logFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/var/tmp/lorri.log";
description = ''
The logfile to use for the ipfs service. Alternatively
<command>sudo launchctl debug system/org.nixos.ipfs --stderr</command>
can be used to stream the logs to a shell after restarting the service with
<command>sudo launchctl kickstart -k system/org.nixos.ipfs</command>.
'';
};
ipfsPath = mkOption {
type = types.nullOr types.path;
default = null;
description = "Set the IPFS_PATH environment variable.";
};
enableGarbageCollection = mkOption {
type = types.bool;
default = false;
description = "Passes --enable-gc flag to ipfs daemon.";
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.kubo ];
launchd.user.agents.ipfs = {
# command = with pkgs; "${ipfs}/bin/ipfs daemon";
serviceConfig = {
ProgramArguments = [ "${cfg.package}/bin/ipfs" "daemon" ]
++ optionals (cfg.enableGarbageCollection) [ "--enable-gc" ];
KeepAlive = true;
RunAtLoad = true;
ProcessType = "Background";
StandardOutPath = cfg.logFile;
StandardErrorPath = cfg.logFile;
EnvironmentVariables = {} // (optionalAttrs (cfg.ipfsPath != null) { IPFS_PATH = cfg.ipfsPath; });
};
};
};
}