* 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
This commit is contained in:
Eelco Dolstra 2012-05-14 04:12:43 +00:00
parent 846cb81234
commit 29b05fb62a
2 changed files with 13 additions and 7 deletions

View File

@ -21,18 +21,19 @@ To modify NixOS, however, you should check out the latest sources from
Subversion. This is done using the following command: Subversion. This is done using the following command:
<screen> <screen>
$ nixos-checkout $ nixos-checkout <replaceable>/my/sources</replaceable>
</screen> </screen>
This will check out the latest NixOS sources to This will check out the latest NixOS sources to
<filename>/etc/nixos/nixos</filename> and the Nixpkgs sources to <filename><replaceable>/my/sources</replaceable>/nixos</filename> and
<filename>/etc/nixos/nixpkgs</filename>. If you want to rebuild your the Nixpkgs sources to
system using your (modified) sources, you need to tell <filename><replaceable>/my/sources</replaceable>/nixpkgs</filename>.
<command>nixos-rebuild</command> about them using the If you want to rebuild your system using your (modified) sources, you
need to tell <command>nixos-rebuild</command> about them using the
<option>-I</option> flag: <option>-I</option> flag:
<screen> <screen>
$ nixos-rebuild -I /etc/nixos $ nixos-rebuild switch -I <replaceable>/my/sources</replaceable>
</screen> </screen>
</para> </para>

View File

@ -14,7 +14,12 @@ let
isExecutable = true; isExecutable = true;
src = pkgs.writeScript "nixos-checkout" 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. # Move any old nixos or nixpkgs directories out of the way.
backupTimestamp=$(date "+%Y%m%d%H%M%S") backupTimestamp=$(date "+%Y%m%d%H%M%S")