forked from DGNum/liminix
WIP add systemConfiguration "install" command
which copies the init stuff (whatever it is) from store to /persist instead of making liminix-rebuild have to know what the files are. This is principally to ease making a system configuration in /mnt or similar when operating in a rescue/recovery scenario, and we don't want to liminix-rebuild because it will reboot
This commit is contained in:
parent
29f35cb902
commit
e5cbc2b86b
2 changed files with 6 additions and 1 deletions
|
@ -12,7 +12,7 @@ fi
|
||||||
if toplevel=$(nix-build "$@" -A outputs.systemConfiguration --no-out-link); then
|
if toplevel=$(nix-build "$@" -A outputs.systemConfiguration --no-out-link); then
|
||||||
echo systemConfiguration $toplevel
|
echo systemConfiguration $toplevel
|
||||||
min-copy-closure $target_host $toplevel
|
min-copy-closure $target_host $toplevel
|
||||||
$ssh_command $target_host cp -v -fP $toplevel/bin/* $toplevel/etc/* /persist
|
$ssh_command $target_host $toplevel/bin/install
|
||||||
$ssh_command $target_host "sync; source /etc/profile; reboot"
|
$ssh_command $target_host "sync; source /etc/profile; reboot"
|
||||||
else
|
else
|
||||||
echo Rebuild failed
|
echo Rebuild failed
|
||||||
|
|
|
@ -80,5 +80,10 @@ in attrset:
|
||||||
cp $closure/store-paths $out/etc/nix-store-paths
|
cp $closure/store-paths $out/etc/nix-store-paths
|
||||||
$STRIP --remove-section=.note --remove-section=.comment --strip-all makedevs -o $out/bin/activate
|
$STRIP --remove-section=.note --remove-section=.comment --strip-all makedevs -o $out/bin/activate
|
||||||
ln -s ${s6-init-bin}/bin/init $out/bin/init
|
ln -s ${s6-init-bin}/bin/init $out/bin/init
|
||||||
|
cat > $out/bin/install <<EOF
|
||||||
|
#!/bin/sh
|
||||||
|
cp -v -fP $out/bin/* $out/etc/* \''${1-/}/persist
|
||||||
|
EOF
|
||||||
|
chmod +x $out/bin/install
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue