anchor.diff:    instList = concatMapStringsSep "," (n: ''"${n}"'') instNames;
   
     padName = n:
  -    if any (n': stringLength n' > stringLength n) instNames
  +    if any (n': stringLength n' > stringLength n) (attrNames cfg.tailFiles)
       then padName "${n} " else n;
   
     virshCmds = concatStringsSep ";" (flatten [
  
positive.code:       phases = [ "buildPhase" ];
  
        buildPhase = ''
          function cleanup() {
            local jobs="$(jobs -p)"
            test -n "$jobs" && kill $jobs || true
          }
  
          function waitForFile() {
            local file="$1"
            local n=0
            while [[ ! -a "$file" ]] && (($n < ${toString cfg.timeout})); do
              n=$((n+1))
              sleep 1
            done
            if ! [ -a "$file" ]; then return 1; fi
          }
  
          trap cleanup SIGTERM SIGKILL EXIT
  
          # Variables that are substituted within the libvirt XML files
          testid="$(basename "$out")"
  
negative.code:           Extra build steps that is run as the last part of the build phase
            for the <code>output</code> build.
          '';
        };
  
        tailFiles = mkOption {
          type = with types; attrsOf str;
          default = {
            OUT = "script.stdout";
            ERR = "script.stderr";
          } // genAttrs instNames (n: "hosts/${n}/console.log")
            // genAttrs instNames (n: "hosts/${n}/journal.log");
        };
  
        test-driver = {
  