2022-03-10 21:52:12 +01:00
|
|
|
{
|
|
|
|
|
inputs,
|
|
|
|
|
system,
|
|
|
|
|
name,
|
|
|
|
|
}: let
|
2023-02-22 10:02:55 +01:00
|
|
|
nixpkgs = inputs.nixpkgs;
|
2021-12-31 16:04:48 +01:00
|
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
2022-03-10 21:52:12 +01:00
|
|
|
ensureFiles = paths:
|
|
|
|
|
pkgs.runCommand "directory" {} ''
|
|
|
|
|
set -efu
|
|
|
|
|
mkdir $out
|
|
|
|
|
cd $out
|
|
|
|
|
${
|
|
|
|
|
nixpkgs.lib.concatMapStringsSep "\n" (path: ''
|
|
|
|
|
mkdir -p "$(dirname ${nixpkgs.lib.escapeShellArg path})"
|
|
|
|
|
echo foo > ${nixpkgs.lib.escapeShellArg path}
|
|
|
|
|
'')
|
|
|
|
|
paths
|
|
|
|
|
}
|
|
|
|
|
'';
|
2021-12-31 16:42:22 +01:00
|
|
|
nixPath = nixpkgs.lib.concatStringsSep ":" ([
|
2022-03-13 10:31:19 +01:00
|
|
|
"niveum=${toString ./.}"
|
|
|
|
|
"nixos-config=${toString ./.}/systems/${name}/configuration.nix"
|
|
|
|
|
"system-secrets=${systemSecrets}"
|
|
|
|
|
"secrets=${sharedSecrets}"
|
2023-02-22 10:02:55 +01:00
|
|
|
"nixpkgs=${toString (inputs.nixpkgs)}"
|
2022-03-13 10:31:19 +01:00
|
|
|
]
|
|
|
|
|
++ nixpkgs.lib.mapAttrsToList (name: value: "${name}=${value}") inputs);
|
2021-12-31 16:04:48 +01:00
|
|
|
# cd ~/.password-store/shared && find * -type f | sed 's/.gpg$//'
|
|
|
|
|
sharedSecrets = ensureFiles [
|
|
|
|
|
"di.fm/key"
|
|
|
|
|
"eduroam/identity"
|
|
|
|
|
"eduroam/password"
|
2022-08-22 10:36:32 +02:00
|
|
|
"github/notification.token"
|
2022-03-12 12:43:35 +01:00
|
|
|
"hass/token"
|
2021-12-31 16:04:48 +01:00
|
|
|
"mail/cock"
|
|
|
|
|
"mail/fastmail"
|
|
|
|
|
"mail/gmail/amroplay"
|
|
|
|
|
"mail/gmail/kieran.meinhardt"
|
|
|
|
|
"mail/meinhaki"
|
2022-05-02 13:54:18 +02:00
|
|
|
"mail/dslalewa"
|
2023-01-06 12:27:47 +01:00
|
|
|
"mail/fsklassp"
|
2021-12-31 16:04:48 +01:00
|
|
|
"mail/posteo"
|
2022-09-27 22:28:58 +02:00
|
|
|
"mega/password"
|
2021-12-31 16:04:48 +01:00
|
|
|
"nextcloud-fysi/password"
|
|
|
|
|
"nextcloud/password"
|
|
|
|
|
"openweathermap.key"
|
2022-01-19 13:37:01 +01:00
|
|
|
"restic/password"
|
2021-12-31 16:04:48 +01:00
|
|
|
"traadfri.key"
|
2023-01-31 10:24:18 +01:00
|
|
|
"miniflux/password"
|
2021-12-31 16:04:48 +01:00
|
|
|
"wifi/Aether.psk"
|
2022-01-17 18:53:26 +01:00
|
|
|
"spotify/username"
|
|
|
|
|
"spotify/password"
|
2021-12-31 16:04:48 +01:00
|
|
|
];
|
2022-03-10 21:52:12 +01:00
|
|
|
systemSecrets = let
|
2022-09-08 08:46:53 +02:00
|
|
|
basic = ["retiolum.ed25519" "retiolum.key" "syncthing/cert.pem" "syncthing/key.pem" "ssh/passphrase"];
|
2022-03-10 21:52:12 +01:00
|
|
|
in
|
|
|
|
|
{
|
|
|
|
|
zaatar = ensureFiles (["moodle.token" "telegram/moodle-dl.token" "mpd-web.key"] ++ basic);
|
|
|
|
|
kabsa = ensureFiles basic;
|
|
|
|
|
manakish = ensureFiles basic;
|
2022-03-16 16:04:22 +01:00
|
|
|
tahina = ensureFiles basic;
|
2022-11-25 09:16:02 +01:00
|
|
|
tabula = ensureFiles basic;
|
2022-07-09 07:13:33 +02:00
|
|
|
ful = ensureFiles (["root.password"] ++ basic);
|
2022-03-10 21:52:12 +01:00
|
|
|
makanek = ensureFiles ([
|
2023-02-09 09:48:34 +01:00
|
|
|
"grafana/admin"
|
2022-03-13 10:31:19 +01:00
|
|
|
"irc/retiolum"
|
|
|
|
|
"irc/hackint"
|
|
|
|
|
"irc/libera"
|
|
|
|
|
"irc/oftc"
|
|
|
|
|
"matrix/nibbana"
|
|
|
|
|
"maxmind/license.key"
|
|
|
|
|
"moodle-dl/faye.token"
|
|
|
|
|
"nextcloud/admin"
|
|
|
|
|
"nextcloud/database"
|
|
|
|
|
"telegram/nachtischsatan.token"
|
|
|
|
|
"telegram/reverse.token"
|
|
|
|
|
"telegram/odyssey.token"
|
|
|
|
|
"telegram/betacode.token"
|
|
|
|
|
"telegram/moodle-dl.token"
|
|
|
|
|
"telegram/proverb.token"
|
|
|
|
|
"telegram/menstruation.token"
|
|
|
|
|
"telegram/cool_village.token"
|
|
|
|
|
"telegram/kmein.token"
|
2022-05-10 22:31:10 +02:00
|
|
|
"telegram/krebs.token"
|
2022-03-13 10:31:19 +01:00
|
|
|
"telegram/prometheus.token"
|
|
|
|
|
"weechat/relay"
|
|
|
|
|
]
|
|
|
|
|
++ basic);
|
2022-03-10 21:52:12 +01:00
|
|
|
}
|
|
|
|
|
.${name};
|
|
|
|
|
in
|
|
|
|
|
toString (pkgs.writers.writeDash "build" "NIX_PATH=${nixPath} nix-build '<nixpkgs/nixos>' -A system --dry-run")
|