]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Move Fiche to flakes
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Sat, 16 Oct 2021 13:56:32 +0000 (15:56 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Sat, 16 Oct 2021 18:22:12 +0000 (20:22 +0200)
flakes/fiche/flake.nix [new file with mode: 0644]
modules/default.nix
modules/webapps/fiche.nix [deleted file]

diff --git a/flakes/fiche/flake.nix b/flakes/fiche/flake.nix
new file mode 100644 (file)
index 0000000..16055e8
--- /dev/null
@@ -0,0 +1,53 @@
+{
+  description = "Command line pastebin for sharing terminal output";
+
+  outputs = { self }: {
+    nixosModule = { config, lib, pkgs, ... }: {
+      options.services.fiche = {
+        enable = lib.mkEnableOption "Enable fiche’s service";
+        port = lib.mkOption {
+          type = lib.types.port;
+          description = "Port to listen to";
+        };
+        domain = lib.mkOption {
+          type = lib.types.str;
+          description = "Domain";
+        };
+        dataDir = lib.mkOption {
+          type = lib.types.path;
+          default = "/var/lib/fiche";
+          description = "Directory where to place the pastes";
+        };
+        https = lib.mkEnableOption "Use https";
+      };
+
+      config =
+        let cfg = config.services.fiche;
+        in lib.mkIf cfg.enable {
+          networking.firewall.allowedTCPPorts = [ cfg.port ];
+
+          systemd.services.fiche = {
+            description = "Fiche server";
+            wantedBy = [ "multi-user.target" ];
+            after = [ "network.target" ];
+
+            script = ''
+              exec ${pkgs.fiche}/bin/fiche -o ${cfg.dataDir} -d ${cfg.domain} ${lib.optionalString cfg.https "-S "} -p ${builtins.toString cfg.port}
+            '';
+
+            serviceConfig = {
+              ExecStartPre = [
+                "+${pkgs.coreutils}/bin/install -m 0755 -o fiche -d ${cfg.dataDir}"
+              ];
+              DynamicUser = true;
+              User = "fiche";
+              PrivateTmp = true;
+              Restart = "always";
+              WorkingDirectory = cfg.dataDir;
+              ReadWritePaths = cfg.dataDir;
+            };
+          };
+        };
+    };
+  };
+}
index cb2e7d99e76c13730757dea41f88d45c57d20a78..2f06eb138d147146d78857efd4c100dc49a99181 100644 (file)
@@ -13,7 +13,7 @@ in
   mastodon = ./webapps/mastodon.nix;
   mediagoblin = ./webapps/mediagoblin.nix;
   peertube = (flakeCompat ../flakes/peertube).nixosModule;
-  fiche = ./webapps/fiche.nix;
+  fiche = flakeLib.withNarKeyCompat flakeCompat ../flakes/fiche "nixosModule";
   paste = flakeLib.withNarKeyCompat flakeCompat ../flakes/paste "nixosModule";
 
   opendmarc = flakeLib.withNarKeyCompat flakeCompat ../flakes/opendmarc "nixosModule";
diff --git a/modules/webapps/fiche.nix b/modules/webapps/fiche.nix
deleted file mode 100644 (file)
index 9061b2e..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib, pkgs, config, ... }:
-let
-  cfg = config.services.fiche;
-in
-{
-  options.services.fiche = {
-    enable = lib.mkEnableOption "Enable fiche’s service";
-    port = lib.mkOption {
-      type = lib.types.port;
-      description = "Port to listen to";
-    };
-    domain = lib.mkOption {
-      type = lib.types.str;
-      description = "Domain";
-    };
-    dataDir = lib.mkOption {
-      type = lib.types.path;
-      default = "/var/lib/fiche";
-      description = "Directory where to place the pastes";
-    };
-    https = lib.mkEnableOption "Use https";
-  };
-
-  config = lib.mkIf cfg.enable {
-    networking.firewall.allowedTCPPorts = [ cfg.port ];
-
-
-    system.activationScripts.fiche = ''
-      mkdir -p /var/lib/fiche
-    '';
-    systemd.services.fiche = {
-      description = "Fiche server";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ];
-
-      script = ''
-        exec ${pkgs.fiche}/bin/fiche -o ${cfg.dataDir} -d ${cfg.domain} ${lib.optionalString cfg.https "-S "} -p ${builtins.toString cfg.port}
-      '';
-
-      serviceConfig = {
-        ExecStartPre = [
-          "+${pkgs.coreutils}/bin/install -m 0755 -o fiche -d /var/lib/fiche"
-        ];
-        DynamicUser = true;
-        User = "fiche";
-        PrivateTmp = true;
-        Restart = "always";
-        WorkingDirectory = cfg.dataDir;
-        ReadWritePaths = cfg.dataDir;
-      };
-    };
-  };
-}