From 29b05fb62a7594266a3bf20a46b22f46d3044c7c Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 14 May 2012 04:12:43 +0000 Subject: [PATCH] * nixos-checkout: add an argument to specify the directory where the sources should be stored. E.g. "nixos-checkout /home/eelco/srcs" will check out to /home/eelco/srcs/{nixos,nixpkgs}. Probably the /etc/nixos default should be removed eventually because /etc is a pretty weird place to keep large source trees. svn path=/nixos/trunk/; revision=34086 --- doc/manual/development.xml | 13 +++++++------ modules/installer/tools/nixos-checkout.nix | 7 ++++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/doc/manual/development.xml b/doc/manual/development.xml index 918bbe08a1ae..017a0f007fab 100644 --- a/doc/manual/development.xml +++ b/doc/manual/development.xml @@ -21,18 +21,19 @@ To modify NixOS, however, you should check out the latest sources from Subversion. This is done using the following command: -$ nixos-checkout +$ nixos-checkout /my/sources This will check out the latest NixOS sources to -/etc/nixos/nixos and the Nixpkgs sources to -/etc/nixos/nixpkgs. If you want to rebuild your -system using your (modified) sources, you need to tell -nixos-rebuild about them using the +/my/sources/nixos and +the Nixpkgs sources to +/my/sources/nixpkgs. +If you want to rebuild your system using your (modified) sources, you +need to tell nixos-rebuild about them using the flag: -$ nixos-rebuild -I /etc/nixos +$ nixos-rebuild switch -I /my/sources diff --git a/modules/installer/tools/nixos-checkout.nix b/modules/installer/tools/nixos-checkout.nix index f90d24b0864f..d591c01df198 100644 --- a/modules/installer/tools/nixos-checkout.nix +++ b/modules/installer/tools/nixos-checkout.nix @@ -14,7 +14,12 @@ let isExecutable = true; src = pkgs.writeScript "nixos-checkout" '' - cd /etc/nixos + #! ${pkgs.stdenv.shell} -e + + prefix="$1" + if [ -z "$prefix" ]; then prefix=/etc/nixos; fi + mkdir -p "$prefix" + cd "$prefix" # Move any old nixos or nixpkgs directories out of the way. backupTimestamp=$(date "+%Y%m%d%H%M%S")