| 
									
										
										
										
											2014-04-14 16:26:48 +02:00
										 |  |  | { config, lib, pkgs, ... }: | 
					
						
							| 
									
										
										
										
											2009-08-21 13:05:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-14 16:26:48 +02:00
										 |  |  | with lib; | 
					
						
							| 
									
										
										
										
											2009-08-21 13:05:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ###### interface | 
					
						
							| 
									
										
										
										
											2011-09-14 18:20:50 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-21 13:05:45 +00:00
										 |  |  |   options = { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     services.tftpd.enable = mkOption { | 
					
						
							| 
									
										
										
										
											2015-02-01 15:57:28 +01:00
										 |  |  |       type = types.bool; | 
					
						
							| 
									
										
										
										
											2009-08-21 13:05:45 +00:00
										 |  |  |       default = false; | 
					
						
							|  |  |  |       description = ''
 | 
					
						
							| 
									
										
										
										
											2015-02-01 15:57:28 +01:00
										 |  |  |         Whether to enable tftpd, a Trivial File Transfer Protocol server. | 
					
						
							| 
									
										
										
										
											2016-10-17 16:13:49 +02:00
										 |  |  |         The server will be run as an xinetd service. | 
					
						
							| 
									
										
										
										
											2009-08-21 13:05:45 +00:00
										 |  |  |       '';
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     services.tftpd.path = mkOption { | 
					
						
							| 
									
										
										
										
											2015-02-01 15:57:28 +01:00
										 |  |  |       type = types.path; | 
					
						
							| 
									
										
										
										
											2016-10-17 16:14:08 +02:00
										 |  |  |       default = "/srv/tftp"; | 
					
						
							| 
									
										
										
										
											2009-08-21 13:05:45 +00:00
										 |  |  |       description = ''
 | 
					
						
							| 
									
										
										
										
											2015-02-01 15:57:28 +01:00
										 |  |  |         Where the tftp server files are stored. | 
					
						
							| 
									
										
										
										
											2009-08-21 13:05:45 +00:00
										 |  |  |       '';
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ###### implementation | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   config = mkIf config.services.tftpd.enable { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     services.xinetd.enable = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     services.xinetd.services = singleton | 
					
						
							|  |  |  |       { name = "tftp"; | 
					
						
							|  |  |  |         protocol = "udp"; | 
					
						
							|  |  |  |         server = "${pkgs.netkittftp}/sbin/in.tftpd"; | 
					
						
							|  |  |  |         serverArgs = "${config.services.tftpd.path}"; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |