55 lines
1.3 KiB
Nix
55 lines
1.3 KiB
Nix
{
|
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
outputs = {
|
|
nixpkgs,
|
|
self,
|
|
}: let
|
|
pkgs = nixpkgs;
|
|
lib = pkgs.lib;
|
|
|
|
mkAllSystems = lib.genAttrs [
|
|
"aarch64-darwin"
|
|
"aarch64-linux"
|
|
"i686-linux"
|
|
"x86_64-darwin"
|
|
"x86_64-linux"
|
|
];
|
|
in {
|
|
formatter = mkAllSystems (system: pkgs.legacyPackages.${system}.alejandra);
|
|
|
|
devShells = mkAllSystems (system: let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
in {
|
|
default = pkgs.mkShell {
|
|
nativeBuildInputs = [pkgs.dnscontrol];
|
|
|
|
shellHook =
|
|
# Auth Token
|
|
''
|
|
echo "Bitte einen deSEC-Auth-Token eingeben:"
|
|
read -rs DESEC_AUTH_TOKEN
|
|
export DESEC_AUTH_TOKEN
|
|
''
|
|
# Mini-Anleitung
|
|
+ ''
|
|
echo ""
|
|
echo "Prüfen: dnscontrol preview"
|
|
echo "Ausrollen: dnscontrol push"
|
|
echo "Zone-Dateien generieren: generate-zone-file [domain]"
|
|
echo ""
|
|
''
|
|
# Zonen-Datei generieren
|
|
+ ''
|
|
generate-zone-file () {
|
|
if [[ "$1" != "" ]]; then
|
|
dnscontrol get-zone --format=zone --out $1.zone' desec - $1
|
|
else
|
|
echo "Bitte eine valide Domain eingeben"
|
|
fi
|
|
};
|
|
'';
|
|
};
|
|
});
|
|
};
|
|
}
|