git-pr-nix @main -
refs -
log -
-
https://git.jolheiser.com/git-pr-nix.git
git-pr nix
chore: nixfmt
Signed-off-by: jolheiser <git@jolheiser.com>
Signature
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgBTEvCQk6VqUAdN2RuH6bj1dNkY
oOpbPWj+jw4ua1B1cAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
AAAAQCB6Xjx2lUF5z+DhaOkFHWNqY30Kx49RjTQ/2jrqizM9WY+gHzkmOyJP1FRLkK6SI8
ZpIZ+yAOhclLTCNcMutwc=
-----END SSH SIGNATURE-----
5 changed files, 87 additions(+), 71 deletions(-)
diff --git a/default.nix b/default.nix
index 29e68779f3982e44987fa1315618ecb5b44be0a9..91f414e0ee10044b7d926781a105cddc781a1db5 100644
--- a/default.nix
+++ b/default.nix
@@ -1,6 +1,10 @@
-{pkgs ? import <nixpkgs>}: let
- pkg = pkgs.callPackage ./pkg {inherit pkgs;};
-in {
+{
+ pkgs ? import <nixpkgs>,
+}:
+let
+ pkg = pkgs.callPackage ./pkg { inherit pkgs; };
+in
+{
git-pr = pkg;
default = pkg;
}
diff --git a/flake.nix b/flake.nix
index 32219644e283d3dde05b892bb79f9f3bf64e9729..74bc5777604fe556c0b486928117028cef913588 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,26 +1,25 @@
{
description = "git-pr package and module";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
- outputs = {
- self,
- nixpkgs,
- }: let
- systems = [
- "x86_64-linux"
- "i686-linux"
- "x86_64-darwin"
- "aarch64-linux"
- "armv6l-linux"
- "armv7l-linux"
- ];
- forAllSystems = f: nixpkgs.lib.genAttrs systems f;
- in {
- overlays.default = import ./overlay;
- nixosModules.git-pr = import ./module;
- nixosModules.default = self.nixosModules.git-pr;
- packages = forAllSystems (
- system:
- import ./default.nix {pkgs = import nixpkgs {inherit system;};}
- );
- };
+ outputs =
+ { self, nixpkgs }:
+ let
+ systems = [
+ "x86_64-linux"
+ "i686-linux"
+ "x86_64-darwin"
+ "aarch64-linux"
+ "armv6l-linux"
+ "armv7l-linux"
+ ];
+ forAllSystems = f: nixpkgs.lib.genAttrs systems f;
+ in
+ {
+ overlays.default = import ./overlay;
+ nixosModules.git-pr = import ./module;
+ nixosModules.default = self.nixosModules.git-pr;
+ packages = forAllSystems (
+ system: import ./default.nix { pkgs = import nixpkgs { inherit system; }; }
+ );
+ };
}
diff --git a/module/default.nix b/module/default.nix
index 7fd054329c1190cb1434b6d547ac5b4f64377e1b..f183a9d217ccd6b665721906ecdc5ebe46ccd90e 100644
--- a/module/default.nix
+++ b/module/default.nix
@@ -3,25 +3,31 @@ config,
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.services.git-pr;
- pkg = pkgs.callPackage ../pkg {inherit pkgs;};
- tomlFormat = pkgs.formats.toml {};
- configFile = tomlFormat.generate "git-pr-config" (lib.recursiveUpdate {
- inherit (cfg) url admins host theme;
+ pkg = pkgs.callPackage ../pkg { inherit pkgs; };
+ tomlFormat = pkgs.formats.toml { };
+ configFile = tomlFormat.generate "git-pr-config" (
+ lib.recursiveUpdate {
+ inherit (cfg)
+ url
+ admins
+ host
+ theme
+ ;
data_dir = cfg.dataDir;
ssh_port = cfg.sshPort;
web_port = cfg.webPort;
time_format = cfg.timeFormat;
- repo =
- builtins.map (repo: {
- inherit (repo) id desc;
- clone_addr = repo.cloneAddr;
- })
- cfg.repos;
- }
- cfg.extraConfig);
-in {
+ repo = builtins.map (repo: {
+ inherit (repo) id desc;
+ clone_addr = repo.cloneAddr;
+ }) cfg.repos;
+ } cfg.extraConfig
+ );
+in
+{
options.services.git-pr = {
enable = lib.mkEnableOption "Git PR service";
@@ -45,7 +51,7 @@ };
admins = lib.mkOption {
type = lib.types.listOf lib.types.str;
- default = [];
+ default = [ ];
description = "List of admin SSH public keys";
};
@@ -76,23 +82,25 @@ description = "Theme for the web interface";
};
repos = lib.mkOption {
- type = lib.types.listOf (lib.types.submodule {
- options = {
- id = lib.mkOption {
- type = lib.types.str;
- description = "Repository ID";
- };
- cloneAddr = lib.mkOption {
- type = lib.types.str;
- description = "Git clone address";
+ type = lib.types.listOf (
+ lib.types.submodule {
+ options = {
+ id = lib.mkOption {
+ type = lib.types.str;
+ description = "Repository ID";
+ };
+ cloneAddr = lib.mkOption {
+ type = lib.types.str;
+ description = "Git clone address";
+ };
+ desc = lib.mkOption {
+ type = lib.types.str;
+ description = "Repository description";
+ };
};
- desc = lib.mkOption {
- type = lib.types.str;
- description = "Repository description";
- };
- };
- });
- default = [];
+ }
+ );
+ default = [ ];
description = "List of repositories to manage";
};
@@ -104,7 +112,7 @@ };
extraConfig = lib.mkOption {
type = lib.types.attrs;
- default = {};
+ default = { };
description = "Additional configuration options to be added to the TOML file";
};
@@ -119,8 +127,8 @@ config = lib.mkIf cfg.enable {
# SSH service
systemd.services.git-pr-ssh = {
description = "Git PR SSH Service";
- after = ["network.target"];
- wantedBy = ["multi-user.target"];
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${cfg.package}/bin/ssh --config ${configFile}";
@@ -133,8 +141,8 @@
# Web service
systemd.services.git-pr-web = {
description = "Git PR Web Service";
- after = ["network.target"];
- wantedBy = ["multi-user.target"];
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${cfg.package}/bin/web --config ${configFile}";
@@ -152,10 +160,13 @@ home = cfg.dataDir;
createHome = true;
};
- users.groups.git-pr = {};
+ users.groups.git-pr = { };
networking.firewall = lib.mkIf cfg.openFirewall {
- allowedTCPPorts = [cfg.webPort cfg.sshPort];
+ allowedTCPPorts = [
+ cfg.webPort
+ cfg.sshPort
+ ];
};
};
}
diff --git a/overlay/default.nix b/overlay/default.nix
index b78adb301d3f1b42bab7a3b503da289f32256a2f..0b8fc9fd5b7b7369d25e4c1dd1cece066d7dde26 100644
--- a/overlay/default.nix
+++ b/overlay/default.nix
@@ -1,8 +1,5 @@
final: prev: {
- nixosModules =
- prev.nixosModules
- or {}
- // {
- git-pr = import ../module;
- };
+ nixosModules = prev.nixosModules or { } // {
+ git-pr = import ../module;
+ };
}
diff --git a/pkg/default.nix b/pkg/default.nix
index e063fb60572ef43d2b9bbbb195ddb34acff97772..fa569c263549ce663a78f0c26979378c7275c7c5 100644
--- a/pkg/default.nix
+++ b/pkg/default.nix
@@ -1,4 +1,6 @@
-{pkgs ? import <nixpkgs>}:
+{
+ pkgs ? import <nixpkgs>,
+}:
pkgs.buildGoModule rec {
pname = "git-pr";
version = "d15bf3ca0f2b9222c59bc2c180f681e0c2b6cd39";
@@ -12,7 +14,10 @@ };
vendorHash = "sha256-yoEITVoM6Dbf7QRVxxjsGKTmllDlMwRsqGevbM6AJ+w=";
- subPackages = ["cmd/ssh" "cmd/web"];
+ subPackages = [
+ "cmd/ssh"
+ "cmd/web"
+ ];
CGO_ENABLED = 0;