feat: initial
This commit is contained in:
commit
bba9ceff39
18 changed files with 750 additions and 0 deletions
37
data/ssh.nix
Normal file
37
data/ssh.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
let
|
||||
allKeyDir = "/etc/nixos/ssh_keys";
|
||||
readKeyFile = filePath:
|
||||
let
|
||||
content = builtins.readFile filePath;
|
||||
# Split on newlines and filter out empty strings
|
||||
lines = builtins.filter (line: line != "") (
|
||||
builtins.filter builtins.isString (
|
||||
builtins.split "\n" content
|
||||
)
|
||||
);
|
||||
in lines;
|
||||
|
||||
# Get all keys for a user
|
||||
getUserKeys = username:
|
||||
let
|
||||
userDir = "${allKeyDir}/${username}";
|
||||
in
|
||||
if builtins.pathExists userDir then
|
||||
let
|
||||
files = builtins.attrNames (builtins.readDir userDir);
|
||||
# Read all key files and flatten the list
|
||||
allKeys = builtins.concatMap (file:
|
||||
readKeyFile "${userDir}/${file}"
|
||||
) files;
|
||||
in allKeys
|
||||
else [];
|
||||
users = builtins.attrNames (builtins.readDir allKeyDir);
|
||||
in
|
||||
rec {
|
||||
keys = builtins.listToAttrs (map (user: {
|
||||
name = user;
|
||||
value = getUserKeys user;
|
||||
}) users);
|
||||
ssh_users = users;
|
||||
getKeys = getUserKeys;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue