| 
									
										
										
										
											2014-06-12 05:36:16 +00:00
										 |  |  | # NixOS module for atftpd TFTP server | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-29 09:45:59 -04:00
										 |  |  | { config, pkgs, lib, ... }: | 
					
						
							| 
									
										
										
										
											2014-06-12 05:36:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-29 09:45:59 -04:00
										 |  |  | with lib; | 
					
						
							| 
									
										
										
										
											2014-06-12 05:36:16 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   cfg = config.services.atftpd; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | in | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   options = { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     services.atftpd = { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       enable = mkOption { | 
					
						
							|  |  |  |         default = false; | 
					
						
							|  |  |  |         type = types.uniq types.bool; | 
					
						
							|  |  |  |         description = ''
 | 
					
						
							|  |  |  |           Whenever to enable the atftpd TFTP server. | 
					
						
							|  |  |  |         '';
 | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       root = mkOption { | 
					
						
							|  |  |  |         default = "/var/empty"; | 
					
						
							|  |  |  |         type = types.uniq types.string; | 
					
						
							|  |  |  |         description = ''
 | 
					
						
							|  |  |  |           Document root directory for the atftpd. | 
					
						
							|  |  |  |         '';
 | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   config = mkIf cfg.enable { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     systemd.services.atftpd = { | 
					
						
							|  |  |  |       description = "atftpd TFTP server"; | 
					
						
							|  |  |  |       after = [ "network.target" ]; | 
					
						
							|  |  |  |       wantedBy = [ "multi-user.target" ]; | 
					
						
							|  |  |  |       # runs as nobody | 
					
						
							|  |  |  |       serviceConfig.ExecStart = "${pkgs.atftp}/sbin/atftpd --daemon --no-fork --bind-address 0.0.0.0 ${cfg.root}"; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |