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