up
This commit is contained in:
14
flake.nix
14
flake.nix
@@ -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;
|
||||||
|
|||||||
@@ -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"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user