This commit is contained in:
2025-08-13 21:14:05 +02:00
parent 50815ff305
commit dddd4d640d
3 changed files with 28 additions and 12 deletions

View File

@@ -36,6 +36,13 @@
user = constants.user; user = constants.user;
darwinHosts = builtins.attrNames (builtins.readDir ./hosts/darwin); darwinHosts = builtins.attrNames (builtins.readDir ./hosts/darwin);
nixosHosts = builtins.attrNames (builtins.readDir ./hosts/nixos); nixosHosts = builtins.attrNames (builtins.readDir ./hosts/nixos);
loadDarwinOverlay = overlayPath: let
overlay = import overlayPath;
module = (overlay null { darwin = {}; }).darwinSyncthingModule;
in {
inherit overlay module;
};
in { in {
systems = [ systems = [
"x86_64-linux" "x86_64-linux"
@@ -45,8 +52,7 @@
flake.darwinConfigurations = inputs.nixpkgs.lib.genAttrs darwinHosts ( flake.darwinConfigurations = inputs.nixpkgs.lib.genAttrs darwinHosts (
hostname: hostname:
let let
syncthingOverlay = import ./overlays/syncthing-darwin.nix; syncthing = loadDarwinOverlay ./overlays/syncthing-darwin.nix;
syncthingModule = (syncthingOverlay null { darwin = {}; }).darwinSyncthingModule;
in in
inputs.darwin.lib.darwinSystem { inputs.darwin.lib.darwinSystem {
system = "aarch64-darwin"; system = "aarch64-darwin";
@@ -58,10 +64,10 @@
modules = [ modules = [
inputs.home-manager.darwinModules.home-manager inputs.home-manager.darwinModules.home-manager
inputs.nix-homebrew.darwinModules.nix-homebrew inputs.nix-homebrew.darwinModules.nix-homebrew
syncthingModule syncthing.module
{ {
nixpkgs.overlays = [ syncthingOverlay ]; nixpkgs.overlays = [ syncthing.overlay ];
nix-homebrew = { nix-homebrew = {
inherit user; inherit user;

View File

@@ -5,16 +5,22 @@
... ...
}: let }: let
isDarwin = pkgs.stdenv.isDarwin; isDarwin = pkgs.stdenv.isDarwin;
isLinux = pkgs.stdenv.isLinux;
homeDir = if isDarwin then "/Users/${user}" else "/home/${user}"; platformConfig = if isDarwin then {
homeDir = "/Users/${user}";
group = "staff";
} else {
homeDir = "/home/${user}";
group = "users";
};
in { in {
services.syncthing = { services.syncthing = {
enable = true; enable = true;
openDefaultPorts = isLinux; openDefaultPorts = !isDarwin;
dataDir = "${homeDir}/.local/share/syncthing"; dataDir = "${platformConfig.homeDir}/.local/share/syncthing";
configDir = "${homeDir}/.config/syncthing"; configDir = "${platformConfig.homeDir}/.config/syncthing";
user = "${user}"; user = "${user}";
group = if isDarwin then "staff" else "users"; group = platformConfig.group;
guiAddress = "0.0.0.0:8384"; guiAddress = "0.0.0.0:8384";
overrideFolders = true; overrideFolders = true;
overrideDevices = true; overrideDevices = true;
@@ -26,7 +32,7 @@ in {
}; };
folders = { folders = {
"Projects" = { "Projects" = {
path = "${homeDir}/Projects"; path = "${platformConfig.homeDir}/Projects";
devices = ["tahani" "jason"]; devices = ["tahani" "jason"];
}; };
}; };

View File

@@ -1,5 +1,6 @@
final: prev: { final: prev: {
darwinSyncthingModule = { config, lib, pkgs, ... }: darwinModules = prev.darwinModules or {} // {
syncthing = { config, lib, pkgs, ... }:
with lib; with lib;
let let
cfg = config.services.syncthing; cfg = config.services.syncthing;
@@ -383,4 +384,7 @@ final: prev: {
''; '';
}; };
}; };
};
darwinSyncthingModule = final.darwinModules.syncthing;
} }