|
|
|
@ -6,7 +6,7 @@ let
|
|
|
|
|
machineOptions = types.submodule {
|
|
|
|
|
options = {
|
|
|
|
|
|
|
|
|
|
configuration-flags = {
|
|
|
|
|
configurationFlags = {
|
|
|
|
|
#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.";
|
|
|
|
@ -57,15 +57,7 @@ let
|
|
|
|
|
znc = mkEnableOption "Profil pour activer le relais IRC ZNC.";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
profiles = {
|
|
|
|
|
# Domaine
|
|
|
|
|
isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork.";
|
|
|
|
|
isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork.";
|
|
|
|
|
# Utilisation machine
|
|
|
|
|
isDesktopEnvironment = mkEnableOption "Pour indiquer une machine avec interface graphique.";
|
|
|
|
|
isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur.";
|
|
|
|
|
isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler.";
|
|
|
|
|
};
|
|
|
|
|
configurationOptions = {
|
|
|
|
|
|
|
|
|
|
ipAddress = mkOption {
|
|
|
|
|
description = "Adresse IP";
|
|
|
|
@ -128,11 +120,22 @@ let
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
profiles = {
|
|
|
|
|
# Domaine
|
|
|
|
|
isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork.";
|
|
|
|
|
isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork.";
|
|
|
|
|
# Utilisation machine
|
|
|
|
|
isDesktopEnvironment = mkEnableOption "Pour indiquer une machine avec interface graphique.";
|
|
|
|
|
isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur.";
|
|
|
|
|
isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler.";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
annuaire = config.r6d.machines;
|
|
|
|
|
currentMachine = annuaire."${config.networking.hostName}";
|
|
|
|
|
flags = currentMachine.configuration-flags;
|
|
|
|
|
flags = currentMachine.configurationFlags;
|
|
|
|
|
in
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
@ -151,8 +154,8 @@ in
|
|
|
|
|
*/
|
|
|
|
|
assertions = [
|
|
|
|
|
{
|
|
|
|
|
assertion = (currentMachine.profiles.isWorkstation && (currentMachine.profiles.isDesktopEnvironment == true))
|
|
|
|
|
|| (!currentMachine.profiles.isWorkstation);
|
|
|
|
|
assertion = (currentMachine.profiles.isDesktopEnvironment && (currentMachine.configurationFlags.graphical == true))
|
|
|
|
|
|| (!currentMachine.profiles.isDesktopEnvironment);
|
|
|
|
|
message = "A workstation requires a graphical environement.";
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|