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 {
|
in {
|
||||||
assertions =
|
assertions =
|
||||||
concatMap (netCfg: let
|
concatMap (netCfg: let
|
||||||
inherit netCfg wgName;
|
inherit (netCfg) wgName;
|
||||||
externalPeers = concatMap (n: attrNames nodes.${n}.config.extra.wireguard.networks.${wgName}.externalPeers) netCfg.nodesWithThisNetwork;
|
externalPeers = concatMap (n: attrNames nodes.${n}.config.extra.wireguard.networks.${wgName}.externalPeers) netCfg.nodesWithThisNetwork;
|
||||||
duplicatePeers = duplicates externalPeers;
|
duplicatePeers = duplicates externalPeers;
|
||||||
usedAddresses =
|
usedAddresses =
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
./format-secrets.nix
|
./format-secrets.nix
|
||||||
./generate-initrd-keys.nix
|
./generate-initrd-keys.nix
|
||||||
./generate-wireguard-keys.nix
|
./generate-wireguard-keys.nix
|
||||||
|
./show-wireguard-qr.nix
|
||||||
];
|
];
|
||||||
in
|
in
|
||||||
builtins.listToAttrs (map (appPath: nameValuePair (removeSuffix ".nix" (builtins.baseNameOf appPath)) (mkApp (import appPath args))) apps)
|
builtins.listToAttrs (map (appPath: nameValuePair (removeSuffix ".nix" (builtins.baseNameOf appPath)) (mkApp (import appPath args))) apps)
|
||||||
|
|
|
@ -3,10 +3,24 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: 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
|
in
|
||||||
# TODO fzf selection of all external peers pls
|
# TODO generate "classic" config and run qrencode
|
||||||
pkgs.writeShellScript "generate-wireguard-keys" ''
|
pkgs.writeShellScript "show-wireguard-qr" ''
|
||||||
set -euo pipefail
|
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