at master 792 B view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7let 8 cfg = config.programs.localsend; 9 firewallPort = 53317; 10in 11{ 12 options.programs.localsend = { 13 enable = lib.mkEnableOption "localsend, an open source cross-platform alternative to AirDrop"; 14 15 package = lib.mkPackageOption pkgs "localsend" { }; 16 17 openFirewall = 18 lib.mkEnableOption "opening the firewall port ${toString firewallPort} for receiving files" 19 // { 20 default = true; 21 }; 22 }; 23 24 config = lib.mkIf cfg.enable { 25 environment.systemPackages = [ cfg.package ]; 26 networking.firewall.allowedTCPPorts = lib.optionals cfg.openFirewall [ firewallPort ]; 27 networking.firewall.allowedUDPPorts = lib.optionals cfg.openFirewall [ firewallPort ]; 28 }; 29 30 meta.maintainers = with lib.maintainers; [ pandapip1 ]; 31}