{ pkgs ? import {} , artiq-fast ? }: let sinaraSystemsSrc = ; generatedNix = pkgs.runCommand "generated-nix" { buildInputs = [ pkgs.nix pkgs.git ]; } '' mkdir $out cp ${./artiq-board.nix} $out/artiq-board.nix cp ${../artiq-full/artiq-targets.nix} $out/artiq-targets.nix cp -a ${artiq-fast} $out/fast REV=`git --git-dir ${sinaraSystemsSrc}/.git rev-parse HEAD` echo -n $REV > $out/sinara-rev.txt SINARA_SRC_CLEAN=`mktemp -d` cp -a ${sinaraSystemsSrc}/. $SINARA_SRC_CLEAN chmod -R 755 $SINARA_SRC_CLEAN/.git chmod 755 $SINARA_SRC_CLEAN rm -rf $SINARA_SRC_CLEAN/.git HASH=`nix-hash --type sha256 --base32 $SINARA_SRC_CLEAN` echo -n $HASH > $out/sinara-hash.txt cat > $out/default.nix << EOF { pkgs ? import {} }: let sinaraSystemsSrc = pkgs.fetchgit { url = "https://git.m-labs.hk/M-Labs/sinara-systems.git"; rev = "$REV"; sha256 = "$HASH"; }; artiq-fast = import ./fast { inherit pkgs; }; artiq-board = import ./artiq-board.nix { inherit pkgs; artiq-fast = ./fast; }; in builtins.mapAttrs (_: conf: pkgs.lib.hydraJob (artiq-board conf)) ( import ./artiq-targets.nix { inherit pkgs sinaraSystemsSrc; artiqVersion = artiq-fast.artiq.version; } ) EOF ''; artiq-board-generated = import generatedNix { inherit pkgs; }; in artiq-board-generated // { generated-nix = pkgs.lib.hydraJob generatedNix; }