diff options
Diffstat (limited to 'tv')
-rw-r--r-- | tv/3modules/wwan.nix | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/tv/3modules/wwan.nix b/tv/3modules/wwan.nix index 703a903c9..a60d314fd 100644 --- a/tv/3modules/wwan.nix +++ b/tv/3modules/wwan.nix @@ -26,9 +26,19 @@ with import ./lib; config = let cfg = config.tv.wwan; in mkIf cfg.enable { + nixpkgs.overlays = singleton (self: super: { + uqmi-wrapper = pkgs.symlinkJoin { + name = "uqmi-wrapper"; + paths = [ + (pkgs.writeDashBin "uqmi" '' + exec ${pkgs.uqmi}/bin/uqmi --device=${cfg.device} "$@" + '') + pkgs.uqmi + ]; + }; + }); systemd.services.wwan = { environment = { - DEVICE = cfg.device; SECRETS = "%d/secrets"; }; path = [ @@ -36,21 +46,12 @@ with import ./lib; pkgs.coreutils pkgs.iproute2 pkgs.jq - (pkgs.symlinkJoin { - name = "uqmi-wrapper"; - paths = [ - (pkgs.writeDashBin "uqmi" '' - set -efu - exec ${pkgs.uqmi}/bin/uqmi --device="$DEVICE" "$@" - '') - pkgs.uqmi - ]; - }) + pkgs.uqmi-wrapper (pkgs.writeDashBin "get-interface" ( if cfg.interface != null then /* sh */ '' echo ${cfg.interface} '' else /* sh */ '' - exec ${pkgs.libqmi}/bin/qmicli -d "$DEVICE" -p --get-wwan-iface + exec ${pkgs.libqmi}/bin/qmicli -d ${cfg.device} -p --get-wwan-iface '' )) ]; @@ -158,6 +159,9 @@ with import ./lib; ''; }; }; + users.users.root.packages = [ + pkgs.uqmi-wrapper + ]; tv.systemd.services.wwan.operators = cfg.operators; }; } |