forked from jan-leila/nix-config
		
	adopted new syncthing flake
This commit is contained in:
		
							parent
							
								
									80092713e3
								
							
						
					
					
						commit
						395a25eff1
					
				
					 5 changed files with 154 additions and 93 deletions
				
			
		|  | @ -1,6 +1,7 @@ | |||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   outputs, | ||||
|   ... | ||||
| }: let | ||||
|   mountDir = "/mnt/sync"; | ||||
|  | @ -59,97 +60,24 @@ in { | |||
|           configDir = configDir; | ||||
|           overrideDevices = true; | ||||
|           overrideFolders = true; | ||||
|           settings = { | ||||
|             devices = { | ||||
|               ceder = { | ||||
|                 id = "MGXUJBS-7AENXHB-7YQRNWG-QILKEJD-5462U2E-WAQW4R4-I2TVK5H-SMK6LAA"; | ||||
|               }; | ||||
|               coven = { | ||||
|                 id = "QGU7NN6-OMXTWVA-YCZ73S5-2O7ECTS-MUCTN4M-YH6WLEL-U4U577I-7PBNCA5"; | ||||
|               }; | ||||
|               defiant = lib.mkIf (config.networking.hostName != "defiant") { | ||||
|                 id = "3R6E6Y4-2F7MF2I-IGB4WE6-A3SQSMV-LIBYSAM-2OXHHU2-KJ6CGIV-QNMCPAR"; | ||||
|               }; | ||||
|               twilight = lib.mkIf (config.networking.hostName != "twilight") { | ||||
|                 id = "UDIYL7V-OAZ2BI3-EJRAWFB-GZYVDWR-JNUYW3F-FFQ35MU-XBTGWEF-QD6K6QN"; | ||||
|               }; | ||||
|               horizon = lib.mkIf (config.networking.hostName != "horizon") { | ||||
|                 id = "OGPAEU6-5UR56VL-SP7YC4Y-IMVCRTO-XFD4CYN-Z6T5TZO-PFZNAT6-4MKWPQS"; | ||||
|               }; | ||||
|               shale = { | ||||
|                 id = "AOAXEVD-QJ2IVRA-6G44Q7Q-TGUPXU2-FWWKOBH-DPKWC5N-LBAEHWJ-7EQF4AM"; | ||||
|               }; | ||||
|             }; | ||||
|             folders = let | ||||
|               ceder = "ceder"; | ||||
|               coven = "coven"; | ||||
|               shale = "shale"; | ||||
|               defiant = lib.mkIf (config.networking.hostName != "defiant") "defiant"; | ||||
|               twilight = lib.mkIf (config.networking.hostName != "twilight") "twilight"; | ||||
|               horizon = lib.mkIf (config.networking.hostName != "horizon") "horizon"; | ||||
|             in | ||||
|               lib.mkMerge [ | ||||
|                 config.host.sync.folders.extraFolders | ||||
|                 (lib.mkIf config.host.sync.folders.leyla.documents.enable { | ||||
|                   "documents" = { | ||||
|                     id = "hvrj0-9bm1p"; | ||||
|                     path = "${mountDir}/leyla/documents"; | ||||
|                     devices = [ | ||||
|                       defiant | ||||
|                       ceder | ||||
|                       coven | ||||
|                       twilight | ||||
|                       horizon | ||||
|                     ]; | ||||
|                   }; | ||||
|                 }) | ||||
|                 (lib.mkIf config.host.sync.folders.share.calendar.enable { | ||||
|                   "calendar" = { | ||||
|                     id = "8oatl-1rv6w"; | ||||
|                     path = "${mountDir}/default/calendar"; | ||||
|                     devices = [ | ||||
|                       defiant | ||||
|                       ceder | ||||
|                       shale | ||||
|                     ]; | ||||
|                   }; | ||||
|                 }) | ||||
|                 (lib.mkIf config.host.sync.folders.leyla.notes.enable { | ||||
|                   "notes" = { | ||||
|                     id = "dwbuv-zffnf"; | ||||
|                     path = "${mountDir}/leyla/notes"; | ||||
|                     devices = [ | ||||
|                       defiant | ||||
|                       ceder | ||||
|                     ]; | ||||
|                   }; | ||||
|                 }) | ||||
|                 (lib.mkIf config.host.sync.folders.share.enable { | ||||
|                   "share" = { | ||||
|                     id = "73ot0-cxmkx"; | ||||
|                     path = "${mountDir}/default/share"; | ||||
|                     devices = [ | ||||
|                       defiant | ||||
|                       ceder | ||||
|                       coven | ||||
|                       twilight | ||||
|                       horizon | ||||
|                       shale | ||||
|                     ]; | ||||
|                   }; | ||||
|                 }) | ||||
|               ]; | ||||
|           }; | ||||
|           configuration = outputs.syncthingConfiguration; | ||||
|           deviceName = config.networking.hostName; | ||||
|         }; | ||||
|       } | ||||
| 
 | ||||
|       (lib.mkIf config.host.impermanence.enable { | ||||
|         assertions = [ | ||||
|           { | ||||
|             assertion = config.services.syncthing.configDir == configDir; | ||||
|             message = "syncthing config dir does not match persistence"; | ||||
|           } | ||||
|         ]; | ||||
|         assertions = | ||||
|           [ | ||||
|             { | ||||
|               assertion = config.services.syncthing.configDir == configDir; | ||||
|               message = "syncthing config dir does not match persistence"; | ||||
|             } | ||||
|           ] | ||||
|           ++ lib.attrsets.mapAttrsToList (_: folder: { | ||||
|             assertion = lib.strings.hasPrefix mountDir folder.path; | ||||
|             message = "syncthing folder ${folder.label} is stored at ${folder.path} which not under the persisted path of ${mountDir}"; | ||||
|           }) | ||||
|           config.services.syncthing.folders; | ||||
|         environment.persistence = { | ||||
|           "/persist/system/root" = { | ||||
|             enable = true; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue