From ac13bd2575843d0bc3f0eeb88600d1bb039cd5ba Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 11 Oct 2013 15:35:41 +0200 Subject: Merge "nixos-option --install" into nixos-generate-config Having configuration.nix generation hidden underneath nixos-option never made sense, also given that there was another command to generate part of the configuration (nixos-hardware-scan). Now nixos-generate-config produces both configuration.nix and hardware-configuration.nix. The latter is overwritten while the former is not. --- .../installer/tools/nixos-generate-config.pl | 98 ++++++++++++++- nixos/modules/installer/tools/nixos-option.sh | 138 +-------------------- 2 files changed, 98 insertions(+), 138 deletions(-) (limited to 'nixos/modules/installer/tools') diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl index 58508560b8e4..e6d8eda016da 100644 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -250,7 +250,7 @@ my $modulePackages = toNixExpr(removeDups @modulePackages); my $attrs = multiLineList(" ", removeDups @attrs); my $imports = multiLineList(" ", removeDups @imports); -my $fn = "$outDir/hardware.nix"; +my $fn = "$outDir/hardware-configuration.nix"; print STDERR "writing $fn...\n"; mkpath($outDir, 0, 0755); @@ -271,4 +271,100 @@ write_file($fn, <= 3.10 + boot.kernelPackages = pkgs.linuxPackages_3_10; +EOF + } else { + $bootLoaderConfig = < "$hardware_config" - fi - - if test -e "$NIXOS_CONFIG"; then - echo 1>&2 "error: Cannot generate a template configuration because a configuration file exists." - exit 1 - fi - - nl=" -" - if test -e /sys/firmware/efi/efivars; then - l1=" # Use the gummiboot efi boot loader." - l2=" boot.loader.grub.enable = false;" - l3=" boot.loader.gummiboot.enable = true;" - l4=" boot.loader.efi.canTouchEfiVariables = true;" - # !!! Remove me when nixos is on 3.10 or greater by default - l5=" # EFI booting requires kernel >= 3.10" - l6=" boot.kernelPackages = pkgs.linuxPackages_3_10;" - bootloader_config="$l1$nl$l2$nl$l3$nl$l4$nl$nl$l5$nl$l6" - else - l1=" # Use the Grub2 boot loader." - l2=" boot.loader.grub.enable = true;" - l3=" boot.loader.grub.version = 2;" - l4=" # Define on which hard drive you want to install Grub." - l5=' # boot.loader.grub.device = "/dev/sda";' - bootloader_config="$l1$nl$l2$nl$l3$nl$nl$l4$nl$l5" - fi - - echo "Generating a basic configuration file in $NIXOS_CONFIG..." - - # Generate a template configuration file where the user has to - # fill the gaps. - cat < "$NIXOS_CONFIG" -# Edit this configuration file to define what should be installed on -# the system. Help is available in the configuration.nix(5) man page -# or the NixOS manual available on virtual console 8 (Alt+F8). - -{ config, pkgs, ... }: - -{ - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ]; - - boot.initrd.kernelModules = - [ # Specify all kernel modules that are necessary for mounting the root - # filesystem. - # "xfs" "ata_piix" - # fbcon # Uncomment this when EFI booting to see the console before the root partition is mounted - ]; - -$bootloader_config - - # networking.hostName = "nixos"; # Define your hostname. - # networking.wireless.enable = true; # Enables Wireless. - - # Add filesystem entries for each partition that you want to see - # mounted at boot time. This should include at least the root - # filesystem. - - # fileSystems."/".device = "/dev/disk/by-label/nixos"; - - # fileSystems."/data" = # where you want to mount the device - # { device = "/dev/sdb"; # the device - # fsType = "ext3"; # the type of the partition - # options = "data=journal"; - # }; - - # List swap partitions activated at boot time. - swapDevices = - [ # { device = "/dev/disk/by-label/swap"; } - ]; - - # Select internationalisation properties. - # i18n = { - # consoleFont = "lat9w-16"; - # consoleKeyMap = "us"; - # defaultLocale = "en_US.UTF-8"; - # }; - - # List services that you want to enable: - - # Enable the OpenSSH daemon. - # services.openssh.enable = true; - - # Enable CUPS to print documents. - # services.printing.enable = true; - - # Enable the X11 windowing system. - # services.xserver.enable = true; - # services.xserver.layout = "us"; - # services.xserver.xkbOptions = "eurosign:e"; - - # Enable the KDE Desktop Environment. - # services.xserver.displayManager.kdm.enable = true; - # services.xserver.desktopManager.kde4.enable = true; -} -EOF - - exit 0 -fi; - # This duplicates the work made below, but it is useful for processing # the output of nixos-option with other tools such as nixos-gui. if $xml; then -- cgit 1.4.1