anchor.diff:        environment = mkIf cfg.cudaSupport {
           LD_LIBRARY_PATH = "${pkgs.linuxPackages_latest.nvidia_x11}/lib";
         };
  -      script = ''
  -        exec ${pkg}/bin/xmr-stak ${xmrConfArg} ${concatStringsSep " " cfg.extraArgs}
  -      '';
  +
  +      preStart = concatStrings (flip mapAttrsToList cfg.configFiles (fn: content: ''
  +        ln -sf '${pkgs.writeText "xmr-stak-${fn}" content}' '${fn}'
  +      ''));
  +
         serviceConfig = let rootRequired = cfg.openclSupport || cfg.cudaSupport; in {
  +        ExecStart = "${pkg}/bin/xmr-stak ${concatStringsSep " " cfg.extraArgs}";
           # xmr-stak generates cpu and/or gpu configuration files
           WorkingDirectory = "/tmp";
           PrivateTmp = true;
  
positive.code:   pkg = pkgs.xmr-stak.override {
      inherit (cfg) openclSupport cudaSupport;
    };
  
    xmrConfArg = optionalString (cfg.configText != "") ("-c " +
      pkgs.writeText "xmr-stak-config.txt" cfg.configText);
  
  in
  
  
negative.code:         description = "List of parameters to pass to xmr-stak.";
        };
  
        configFiles = mkOption {
          type = types.attrsOf types.str;
          default = {};
          example = literalExample ''
            {
              "config.txt" = '''
                "verbose_level" : 4,
                "h_print_time" : 60,
                "tls_secure_algo" : true,
              ''';
              "pools.txt" = '''
                "currency" : "monero7",
                "pool_list" :
                [ { "pool_address" : "pool.supportxmr.com:443",
                    "wallet_address" : "my-wallet-address",
                    "rig_id" : "",
                    "pool_password" : "nixos",
                    "use_nicehash" : false,
                    "use_tls" : true,
                    "tls_fingerprint" : "",
                    "pool_weight" : 23
                  },
                ],
              ''';
            }
          '';
          description = ''
            Content of config files like config.txt, pools.txt or cpu.txt.
          '';
        };
      };
  