38 lines
		
	
	
		
			912 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			912 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, lib, ... }:
 | 
						|
 | 
						|
with lib;
 | 
						|
 | 
						|
let
 | 
						|
  cfg = config.programs.fuse;
 | 
						|
in {
 | 
						|
  meta.maintainers = with maintainers; [ primeos ];
 | 
						|
 | 
						|
  options.programs.fuse = {
 | 
						|
    mountMax = mkOption {
 | 
						|
      # In the C code it's an "int" (i.e. signed and at least 16 bit), but
 | 
						|
      # negative numbers obviously make no sense:
 | 
						|
      type = types.ints.between 0 32767; # 2^15 - 1
 | 
						|
      default = 1000;
 | 
						|
      description = ''
 | 
						|
        Set the maximum number of FUSE mounts allowed to non-root users.
 | 
						|
      '';
 | 
						|
    };
 | 
						|
 | 
						|
    userAllowOther = mkOption {
 | 
						|
      type = types.bool;
 | 
						|
      default = false;
 | 
						|
      description = ''
 | 
						|
        Allow non-root users to specify the allow_other or allow_root mount
 | 
						|
        options, see mount.fuse3(8).
 | 
						|
      '';
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  config =  {
 | 
						|
    environment.etc."fuse.conf".text = ''
 | 
						|
      ${optionalString (!cfg.userAllowOther) "#"}user_allow_other
 | 
						|
      mount_max = ${toString cfg.mountMax}
 | 
						|
    '';
 | 
						|
  };
 | 
						|
}
 |