mirror of
https://github.com/oddlama/nix-config.git
synced 2025-10-11 07:10:39 +02:00
feat(apps): add wireguard peer selection for use with qr code generation later
This commit is contained in:
parent
62e7d4ec91
commit
b250a6b1b3
3 changed files with 20 additions and 5 deletions
|
@ -174,7 +174,7 @@ in {
|
|||
in {
|
||||
assertions =
|
||||
concatMap (netCfg: let
|
||||
inherit netCfg wgName;
|
||||
inherit (netCfg) wgName;
|
||||
externalPeers = concatMap (n: attrNames nodes.${n}.config.extra.wireguard.networks.${wgName}.externalPeers) netCfg.nodesWithThisNetwork;
|
||||
duplicatePeers = duplicates externalPeers;
|
||||
usedAddresses =
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
./format-secrets.nix
|
||||
./generate-initrd-keys.nix
|
||||
./generate-wireguard-keys.nix
|
||||
./show-wireguard-qr.nix
|
||||
];
|
||||
in
|
||||
builtins.listToAttrs (map (appPath: nameValuePair (removeSuffix ".nix" (builtins.baseNameOf appPath)) (mkApp (import appPath args))) apps)
|
||||
|
|
|
@ -3,10 +3,24 @@
|
|||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (pkgs.lib) escapeShellArg;
|
||||
inherit
|
||||
(pkgs.lib)
|
||||
attrNames
|
||||
concatMap
|
||||
concatStringsSep
|
||||
escapeShellArg
|
||||
filter
|
||||
unique
|
||||
;
|
||||
|
||||
nodeNames = attrNames self.nodes;
|
||||
nodesWithNet = net: filter (n: builtins.hasAttr net self.nodes.${n}.config.extra.wireguard.networks) nodeNames;
|
||||
wireguardNetworks = unique (concatMap (n: attrNames self.nodes.${n}.config.extra.wireguard.networks) nodeNames);
|
||||
externalPeersForNet = net: concatMap (n: attrNames self.nodes.${n}.config.extra.wireguard.networks.${net}.externalPeers) (nodesWithNet net);
|
||||
externalPeers = concatMap (net: map (peer: {inherit net peer;}) (externalPeersForNet net)) wireguardNetworks;
|
||||
in
|
||||
# TODO fzf selection of all external peers pls
|
||||
pkgs.writeShellScript "generate-wireguard-keys" ''
|
||||
# TODO generate "classic" config and run qrencode
|
||||
pkgs.writeShellScript "show-wireguard-qr" ''
|
||||
set -euo pipefail
|
||||
echo TODO
|
||||
echo ${concatStringsSep " " (map (x: "${x.net}.${x.peer}") externalPeers)} | fzf
|
||||
''
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue