From c98e5a5c538275c818d0b18b010b66bf62d2b61d Mon Sep 17 00:00:00 2001 From: Guanran Wang Date: Mon, 26 Feb 2024 19:37:43 +0800 Subject: [PATCH] darwin/desktop/setSystemProxy: refactor --- darwin/profiles/desktop/home/default.nix | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/darwin/profiles/desktop/home/default.nix b/darwin/profiles/desktop/home/default.nix index aa8643d..c84b98f 100644 --- a/darwin/profiles/desktop/home/default.nix +++ b/darwin/profiles/desktop/home/default.nix @@ -1,5 +1,6 @@ { config, + osConfig, pkgs, lib, ... @@ -52,15 +53,23 @@ done ) ''; + + # I should've putted it in /darwin/modules/networking/proxy.nix, + # but I am too stupid to figure out how nix-darwin works... setSystemProxy = let + inherit (osConfig.networking) knownNetworkServices; networksetup = /usr/sbin/networksetup; + + # naive but works(tm) + # "http://127.0.0.1:1234/" -> "127.0.0.1 1234" + proxy = builtins.replaceStrings ["http://" ":" "/"] ["" " " ""] osConfig.networking.proxy.httpProxy; in - lib.hm.dag.entryAfter ["writeBoundary"] '' - ${networksetup} -setwebproxystate "Wi-fi" on - ${networksetup} -setwebproxy "Wi-fi" 127.0.0.1 7890 - ${networksetup} -setwebproxystate "Ethernet" on - ${networksetup} -setwebproxy "Ethernet" 127.0.0.1 7890 - ''; + lib.hm.dag.entryAfter ["writeBoundary"] + (lib.concatMapStrings (x: '' + ${networksetup} -setwebproxystate "${x}" on + ${networksetup} -setwebproxy "${x}" ${proxy} + '') + knownNetworkServices); }; packages = with pkgs; [