Compare commits

...

4 Commits

Author SHA1 Message Date
Yves Dubromelle
111f33ff3d profil pour xmonad, et activation pour latitude 2016-07-21 00:02:33 +02:00
28f65522ae ajout variable pour ajouter variable d'environnement awesome 2016-07-18 12:14:00 +02:00
Yves Dubromelle
b7f05e47ac prise en compte de nomade par le générateur 2016-07-16 20:42:30 +02:00
Yves Dubromelle
350b62aef2 formattage 2016-07-16 20:41:00 +02:00

View File

@@ -9,69 +9,73 @@ let
host = config.networking.hostName; host = config.networking.hostName;
in in
{ {
imports = [ imports = [
./activation-manuelle/auto-upgrade.nix ./activation-manuelle/auto-upgrade.nix
./activation-manuelle/laptop.nix ./activation-manuelle/laptop.nix
./activation-manuelle/locate.nix ./activation-manuelle/locate.nix
./activation-manuelle/fail2ban.nix ./activation-manuelle/fail2ban.nix
./activation-manuelle/nix-serve-client.nix ./activation-manuelle/nix-serve-client.nix
./activation-manuelle/nix-serve-server.nix ./activation-manuelle/nix-serve-server.nix
./activation-manuelle/swap.nix ./activation-manuelle/swap.nix
]; ];
###### interface ###### interface
options = { options = {
#* Utilisé pour afecter des capacités aux machines #* Utilisé pour afecter des capacités aux machines
r6d.profiles = { r6d.profiles = {
# Domaine # Domaine
isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork."; isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork.";
isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork."; isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork.";
# Utilisation machine # Utilisation machine
isDesktop = mkEnableOption "Pour indiquer une machine avec interface graphique."; isDesktop = mkEnableOption "Pour indiquer une machine avec interface graphique.";
isHome = mkEnableOption "Pour indiquer que la machine sert à la maison (divertissement & autre)."; isHome = mkEnableOption "Pour indiquer que la machine sert à la maison (divertissement & autre).";
isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur."; isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur.";
isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler."; isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler.";
};
#* Utilisé dans les fichiers .nix
r6d.config-generator = {
enable = mkEnableOption "Génération de la configuration d'une machine.";
awesome = mkEnableOption "Profil pour activer le gestionnaire de fenêtre awesome.";
auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques.";
docker = mkEnableOption "Profil pour l'utilisation de Docker.";
fail2ban = mkEnableOption "Profil pour activer Fail2ban.";
jeux = mkEnableOption "Profil pour les jeux vidéos.";
laptop = mkEnableOption "Profil pour les outils spécifiques aux ordinateurs portables..";
locate = mkEnableOption "Profil pour activer la fonction locate.";
nix-serve-client= mkEnableOption "Profil pour que la machine soit un serveur de cache nix.";
nix-serve-server= mkEnableOption "Profil pour que la machine soit un serveur de cache nix.";
swap = mkEnableOption "Profil pour que le swap soit activé.";
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad.";
};
#* Utilisé pour avoir des raccourcis de machine
r6d.computers = {
isLatitude = mkEnableOption "Identification du nom de machine.";
isMonstre = mkEnableOption "Identification du nom de machine.";
isNeoNomade = mkEnableOption "Identification du nom de machine.";
isNomade = mkEnableOption "Identification du nom de machine.";
isPhenom = mkEnableOption "Identification du nom de machine.";
isRadx = mkEnableOption "Identification du nom de machine.";
isXray = mkEnableOption "Identification du nom de machine.";
};
}; };
#* Utilisé dans les fichiers .nix ###### implementation
r6d.config-generator = { # https://nixos.org/releases/nixos/14.12-small/nixos-14.12.374.61adf9e/manual/sec-writing-modules.html
enable = mkEnableOption "Génération de la configuration d'une machine."; # https://nixos.org/wiki/NixOS:extend_NixOS
auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques."; config = mkMerge
docker = mkEnableOption "Profil pour l'utilisation de Docker."; [ # Unconditional stuff.
fail2ban = mkEnableOption "Profil pour activer Fail2ban.";
jeux = mkEnableOption "Profil pour les jeux vidéos.";
laptop = mkEnableOption "Profil pour les outils spécifiques aux ordinateurs portables..";
locate = mkEnableOption "Profil pour activer la fonction locate.";
nix-serve-client= mkEnableOption "Profil pour que la machine soit un serveur de cache nix.";
nix-serve-server= mkEnableOption "Profil pour que la machine soit un serveur de cache nix.";
swap = mkEnableOption "Profil pour que le swap soit activé.";
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
};
#* Utilisé pour avoir des raccourcis de machine
r6d.computers = {
isLatitude = mkEnableOption "Identification du nom de machine.";
isMonstre = mkEnableOption "Identification du nom de machine.";
isNeoNomade = mkEnableOption "Identification du nom de machine.";
isPhenom = mkEnableOption "Identification du nom de machine.";
isRadx = mkEnableOption "Identification du nom de machine.";
isXray = mkEnableOption "Identification du nom de machine.";
};
};
###### implementation
# https://nixos.org/releases/nixos/14.12-small/nixos-14.12.374.61adf9e/manual/sec-writing-modules.html
# https://nixos.org/wiki/NixOS:extend_NixOS
config = mkMerge
[ # Unconditional stuff.
{ {
r6d.config-generator.enable = true; r6d.config-generator.enable = true;
r6d.computers = { r6d.computers = {
isLatitude = host == "latitude.dubronetwork.fr"; isLatitude = host == "latitude.dubronetwork.fr";
isMonstre = host == "monstre.dubronetwork.fr"; isMonstre = host == "monstre.dubronetwork.fr";
isNeoNomade = host == "neo-nomade.dubronetwork.fr"; isNeoNomade = host == "neo-nomade.dubronetwork.fr";
isNomade = host == "nomade.dubronetwork.fr";
isPhenom = host == "phenom.dubronetwork.fr"; isPhenom = host == "phenom.dubronetwork.fr";
isRadx = host == "radx.prunetwork.fr"; isRadx = host == "radx.prunetwork.fr";
isXray = host == "xray.prunetwork.fr"; isXray = host == "xray.prunetwork.fr";
@@ -82,6 +86,7 @@ in
## Définition des profils génériques ## Définition des profils génériques
(mkIf pfl.isDesktop { (mkIf pfl.isDesktop {
r6d.config-generator.awesome = true;
}) })
(mkIf pfl.isHome { (mkIf pfl.isHome {
r6d.profiles.isDesktop = true; r6d.profiles.isDesktop = true;
@@ -91,10 +96,10 @@ in
}) })
(mkIf pfl.isWorkstation { (mkIf pfl.isWorkstation {
r6d.profiles.isDesktop = true; r6d.profiles.isDesktop = true;
r6d.config-generator.docker = true; r6d.config-generator.docker = true;
}) })
(mkIf pfl.isDubronetwork { (mkIf pfl.isDubronetwork {
r6d.config-generator.auto-upgrade = true; r6d.config-generator.auto-upgrade = true;
r6d.config-generator.nix-serve-client = true; r6d.config-generator.nix-serve-client = true;
}) })
@@ -113,8 +118,8 @@ in
r6d.config-generator.nix-serve-client = true; r6d.config-generator.nix-serve-client = true;
r6d.config-generator.swap = true; r6d.config-generator.swap = true;
}) })
## Affectation des profils aux machines ## Affectation des profils aux machines
(mkIf comp.isRadx { (mkIf comp.isRadx {
r6d.profiles.isHome = true; r6d.profiles.isHome = true;
@@ -138,9 +143,10 @@ in
r6d.config-generator = { r6d.config-generator = {
laptop = true; laptop = true;
xmonad = true;
}; };
}) })
(mkIf comp.isMonstre { (mkIf comp.isMonstre {
r6d.profiles.isDubronetwork = true; r6d.profiles.isDubronetwork = true;
r6d.profiles.isServer = true; r6d.profiles.isServer = true;
@@ -154,12 +160,20 @@ in
laptop = true; laptop = true;
}; };
}) })
(mkIf comp.isPhenom { (mkIf comp.isNomade{
r6d.profiles.isDubronetwork = true;
r6d.config-generator = {
laptop = true;
};
})
(mkIf comp.isPhenom {
r6d.profiles.isDubronetwork = true; r6d.profiles.isDubronetwork = true;
r6d.profiles.isHome = true; r6d.profiles.isHome = true;
r6d.profiles.isWorkstation = true; r6d.profiles.isWorkstation = true;
r6d.config-generator.nix-serve-server = true; r6d.config-generator.nix-serve-server = true;
r6d.config-generator.xmonad = true;
}) })
]; ];
} }