diff options
author | makefu <makefu@nixos.dev> | 2016-01-18 12:50:20 +0100 |
---|---|---|
committer | makefu <makefu@nixos.dev> | 2016-01-18 12:50:20 +0100 |
commit | f4754010336a1d7c876bc6797a44f30e3d4b4ead (patch) | |
tree | de4dff5340b76d970cc404146e688726e4446e0f /krebs/default.nix | |
parent | b86daca11669019d3c2218e623bfb57b5a8033d7 (diff) | |
parent | de891cf43181d28cbc9526993df4e55022d230da (diff) |
Merge branch 'master' of gum:stockholm
Diffstat (limited to 'krebs/default.nix')
-rw-r--r-- | krebs/default.nix | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/krebs/default.nix b/krebs/default.nix index ad0205426..15d0e8e2e 100644 --- a/krebs/default.nix +++ b/krebs/default.nix @@ -36,6 +36,7 @@ let out = { { system ? current-host-name , target ? system }@args: let + config = get-config system; in '' #! /bin/sh # ${current-date} ${current-user-name}@${current-host-name} @@ -47,6 +48,9 @@ let out = { ${builtins.readFile ./4lib/infest/install-nix.sh} ''} + # Prepare target source via bind-mounting + + (${nixos-install args}) ${rootssh target '' @@ -98,7 +102,7 @@ let out = { #! /bin/sh # ${current-date} ${current-user-name}@${current-host-name} # krebs.nixos-install - (${populate args}) + (${populate (args // { root = "/mnt"; })}) ${rootssh target '' export PATH; PATH=/root/.nix-profile/bin:$PATH @@ -205,6 +209,7 @@ let out = { populate = { system ? current-host-name , target ? system + , root ? "" }@args: let out = '' #! /bin/sh @@ -217,6 +222,7 @@ let out = { ["dir" "git"])} ''; + config = get-config system; current-host = config.krebs.hosts.${current-host-name}; @@ -225,17 +231,18 @@ let out = { methods.dir = config: let can-push = config.host.name == current-host.name; + target-path = root + config.target-path; push-method = '' rsync \ --exclude .git \ --exclude .graveyard \ --exclude old \ --exclude tmp \ - --rsync-path='mkdir -p ${config.target-path} && rsync' \ + --rsync-path='mkdir -p ${target-path} && rsync' \ --delete-excluded \ -vrLptgoD \ ${config.path}/ \ - root@${target}:${config.target-path} + root@${target}:${target-path} ''; in if can-push then push-method else @@ -244,9 +251,10 @@ let out = { throw "No way to push ${dir} from ${current-host.name} to ${target}"; methods.git = config: - rootssh target '' - mkdir -p ${config.target-path} - cd ${config.target-path} + let target-path = root + config.target-path; + in rootssh target '' + mkdir -p ${target-path} + cd ${target-path} if ! test -e .git; then git init fi |