forked from M-Labs/nix-scripts
wfvm: remove more dead code
This commit is contained in:
parent
0a2e7dae93
commit
446dbbfbf2
@ -1,99 +0,0 @@
|
|||||||
{ pkgs ? import <nixpkgs> {}
|
|
||||||
, diskImageSize ? "22G"
|
|
||||||
, qemuMem ? "4G"
|
|
||||||
,
|
|
||||||
}:
|
|
||||||
|
|
||||||
with pkgs;
|
|
||||||
|
|
||||||
let
|
|
||||||
windowsIso = fetchurl {
|
|
||||||
url = "https://software-download.microsoft.com/download/sg/17763.107.101029-1455.rs5_release_svc_refresh_CLIENT_LTSC_EVAL_x64FRE_en-us.iso";
|
|
||||||
sha256 = "668fe1af70c2f7416328aee3a0bb066b12dc6bbd2576f40f812b95741e18bc3a";
|
|
||||||
};
|
|
||||||
anaconda = fetchurl {
|
|
||||||
url = "https://repo.anaconda.com/archive/Anaconda3-2019.03-Windows-x86_64.exe";
|
|
||||||
sha256 = "1f9icm5rwab6l1f23a70dw0qixzrl62wbglimip82h4zhxlh3jfj";
|
|
||||||
};
|
|
||||||
|
|
||||||
escape = builtins.replaceStrings [ "\\" ] [ "\\\\" ];
|
|
||||||
qemu = import ./qemu.nix {
|
|
||||||
inherit pkgs qemuMem;
|
|
||||||
diskImage = "c.img";
|
|
||||||
};
|
|
||||||
# Double-escape because we produce a script from a shell heredoc
|
|
||||||
ssh = cmd: qemu.ssh (escape cmd);
|
|
||||||
scp = qemu.scp;
|
|
||||||
|
|
||||||
sshCondaEnv = cmd: ssh "anaconda\\scripts\\activate && ${cmd}";
|
|
||||||
condaEnv = "artiq-env";
|
|
||||||
condaDepSpecs =
|
|
||||||
builtins.concatStringsSep " "
|
|
||||||
(
|
|
||||||
map (s: "\"${s}\"")
|
|
||||||
(import ../conda-artiq-deps.nix)
|
|
||||||
);
|
|
||||||
|
|
||||||
instructions =
|
|
||||||
builtins.toFile "install.txt"
|
|
||||||
(builtins.readFile ./install.txt);
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "windows-installer";
|
|
||||||
src = windowsIso;
|
|
||||||
setSourceRoot = "sourceRoot=`pwd`";
|
|
||||||
unpackCmd = ''
|
|
||||||
ln -s $curSrc windows.iso
|
|
||||||
'';
|
|
||||||
propagatedBuildInputs = qemu.inputs;
|
|
||||||
dontBuild = true;
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin $out/data
|
|
||||||
ln -s $(readlink windows.iso) $out/data/windows.iso
|
|
||||||
cat > $out/bin/windows-installer.sh << EOF
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -e -m
|
|
||||||
|
|
||||||
${qemu.qemu-img} create -f qcow2 c.img ${diskImageSize}
|
|
||||||
${qemu.runQemu false [] [
|
|
||||||
"-boot"
|
|
||||||
"order=d"
|
|
||||||
"-drive"
|
|
||||||
"file=c.img,index=0,media=disk,cache=unsafe"
|
|
||||||
"-drive"
|
|
||||||
"file=$out/data/windows.iso,index=1,media=cdrom,cache=unsafe"
|
|
||||||
]} &
|
|
||||||
cat ${instructions}
|
|
||||||
wait
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > $out/bin/anaconda-installer.sh << EOF
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -e -m
|
|
||||||
|
|
||||||
${qemu.runQemu false [] [
|
|
||||||
"-boot"
|
|
||||||
"order=c"
|
|
||||||
"-drive"
|
|
||||||
"file=c.img,index=0,media=disk"
|
|
||||||
]} &
|
|
||||||
sleep 10
|
|
||||||
${ssh "ver"}
|
|
||||||
|
|
||||||
${scp anaconda "Anaconda.exe"}
|
|
||||||
${ssh "start /wait \"\" Anaconda.exe /S /D=%cd%\\anaconda"}
|
|
||||||
|
|
||||||
${sshCondaEnv "conda config --add channels conda-forge"}
|
|
||||||
${sshCondaEnv "conda config --add channels m-labs"}
|
|
||||||
( ${sshCondaEnv "conda update -y conda"} ) || true
|
|
||||||
${sshCondaEnv "conda update -y --all"}
|
|
||||||
${sshCondaEnv "conda create -y -n ${condaEnv}"}
|
|
||||||
${sshCondaEnv "conda install -y -n ${condaEnv} ${condaDepSpecs}"}
|
|
||||||
${ssh "shutdown /p /f"}
|
|
||||||
|
|
||||||
echo "Waiting for qemu exit"
|
|
||||||
wait
|
|
||||||
EOF
|
|
||||||
chmod a+x $out/bin/*.sh
|
|
||||||
'';
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user