L’écriture d’un flocon ou d’une configuration est parfois difficile pour de nombreuses raisons.
Cette page vous donne quelques pistes pour apprendre à debugger.
Nix Repl
Depuis le même répertoire que votre flocon :
nix repl
Charger le flocon dans nix repl :
:lf .
En appuyant plusieurs fois sur TAB, vous verrez ce que vous avez dans la portée. Essayons de voir les inputs. Pensez à appuyer sur TAB après avoir saisi la ligne :
inputs.
De mon côté, avec le flocon du module GLF, je peux voir les inputs nixpkgs
et utils
.
nix-repl> inputs.
inputs.nixpkgs inputs.utils
Essayons avec les outputs :
outputs.
On retrouve effectivement le devShells (pour build la documentation), l’iso et nixosConfigurations.
nix-repl> outputs.
outputs.devShells outputs.iso outputs.nixosConfigurations
Descendons en profondeur dans outputs.nixosConfigurations
pour retrouver nos options. Je vous épargne la recherche :
nix-repl> outputs.nixosConfigurations.glf-installer.config.
On obtient :
nix-repl> outputs.nixosConfigurations.glf-installer.config.
outputs.nixosConfigurations.glf-installer.config.appstream
outputs.nixosConfigurations.glf-installer.config.assertions
outputs.nixosConfigurations.glf-installer.config.boot
outputs.nixosConfigurations.glf-installer.config.console
outputs.nixosConfigurations.glf-installer.config.containers
outputs.nixosConfigurations.glf-installer.config.docker-containers
outputs.nixosConfigurations.glf-installer.config.documentation
outputs.nixosConfigurations.glf-installer.config.dysnomia
outputs.nixosConfigurations.glf-installer.config.ec2
outputs.nixosConfigurations.glf-installer.config.environment
outputs.nixosConfigurations.glf-installer.config.fileSystems
outputs.nixosConfigurations.glf-installer.config.fonts
outputs.nixosConfigurations.glf-installer.config.gtk
outputs.nixosConfigurations.glf-installer.config.hardware
outputs.nixosConfigurations.glf-installer.config.i18n
outputs.nixosConfigurations.glf-installer.config.ids
outputs.nixosConfigurations.glf-installer.config.installer
outputs.nixosConfigurations.glf-installer.config.isSpecialisation
outputs.nixosConfigurations.glf-installer.config.isoImage
outputs.nixosConfigurations.glf-installer.config.jobs
outputs.nixosConfigurations.glf-installer.config.krb5
outputs.nixosConfigurations.glf-installer.config.lib
outputs.nixosConfigurations.glf-installer.config.location
outputs.nixosConfigurations.glf-installer.config.meta
outputs.nixosConfigurations.glf-installer.config.nesting
outputs.nixosConfigurations.glf-installer.config.networking
outputs.nixosConfigurations.glf-installer.config.nix
outputs.nixosConfigurations.glf-installer.config.nixops
outputs.nixosConfigurations.glf-installer.config.nixpkgs
outputs.nixosConfigurations.glf-installer.config.nvidia_config
outputs.nixosConfigurations.glf-installer.config.oci
outputs.nixosConfigurations.glf-installer.config.openstack
outputs.nixosConfigurations.glf-installer.config.passthru
outputs.nixosConfigurations.glf-installer.config.power
outputs.nixosConfigurations.glf-installer.config.powerManagement
outputs.nixosConfigurations.glf-installer.config.programs
outputs.nixosConfigurations.glf-installer.config.qt
outputs.nixosConfigurations.glf-installer.config.qt5
outputs.nixosConfigurations.glf-installer.config.security
outputs.nixosConfigurations.glf-installer.config.services
outputs.nixosConfigurations.glf-installer.config.snapraid
outputs.nixosConfigurations.glf-installer.config.sound
outputs.nixosConfigurations.glf-installer.config.specialisation
outputs.nixosConfigurations.glf-installer.config.stubby
outputs.nixosConfigurations.glf-installer.config.swapDevices
outputs.nixosConfigurations.glf-installer.config.system
outputs.nixosConfigurations.glf-installer.config.systemd
outputs.nixosConfigurations.glf-installer.config.time
outputs.nixosConfigurations.glf-installer.config.users
outputs.nixosConfigurations.glf-installer.config.virtualisation
outputs.nixosConfigurations.glf-installer.config.warnings
outputs.nixosConfigurations.glf-installer.config.xdg
outputs.nixosConfigurations.glf-installer.config.zramSwap
Cela doit vous être familié, non ?
Regardez la dernière ligne zramSwap
, elle correspond aux options nixos.
nix-repl> outputs.nixosConfigurations.glf-installer.config.zramSwap.
outputs.nixosConfigurations.glf-installer.config.zramSwap.algorithm outputs.nixosConfigurations.glf-installer.config.zramSwap.priority
outputs.nixosConfigurations.glf-installer.config.zramSwap.enable outputs.nixosConfigurations.glf-installer.config.zramSwap.swapDevices
outputs.nixosConfigurations.glf-installer.config.zramSwap.memoryMax outputs.nixosConfigurations.glf-installer.config.zramSwap.writebackDevice
outputs.nixosConfigurations.glf-installer.config.zramSwap.memoryPercent
outputs.nixosConfigurations.glf-installer.config.zramSwap.numDevices
Essayons de lire la valeur de l’option zramSwap.enable
(cette fois, utilisez ENTER pour valider) :
nix-repl> outputs.nixosConfigurations.glf-installer.config.zramSwap.enable
[1 copied (185.6 MiB), 28.6 MiB DL]false
Essayons avec une autre option.
nix-repl> outputs.nixosConfigurations.glf-installer.config.programs.firefox.enable
[1 copied (185.6 MiB), 28.6 MiB DL]true
Comme vous pouvez le voir, vous venez d’apprendre à parcourir les attributs d’un flocon, retrouver une option ainsi que la valeur actuellement attribué !