nixos-config/config/host-config/nostromo/factorio.nix

157 lines
5.0 KiB
Nix
Raw Normal View History

2022-10-23 13:36:31 -07:00
{ config, lib, pkgs, ... }:
let
# gdiw = let
# version = "0.17.5";
# sha256 = "0kg1jz26gpmldajckb47vgk9v6z6w0sf1lykl2pvjh0nq4mfl252";
# in pkgs.stdenv.mkDerivation {
# inherit version;
# pname = "gdiw";
# src = pkgs.fetchurl {
# inherit sha256;
# url =
# "https://github.com/DaCyclops/GDIW/archive/refs/tags/${version}.zip";
# };
# deps = [ ];
# phases = [ "installPhase" ];
# installPhase = ''
# mkdir $out
# cp $src $out/GDIW_${version}.zip
# '';
# };
# bottleneck = let
# version = "0.11.7";
# sha256 = "0mvk0wciqpggjc0vzhb7g0a0cxq0wdzvzwrbqvagr6y02j4h3y1n";
# in pkgs.stdenv.mkDerivation {
# inherit version;
# pname = "bottleneck";
# src = pkgs.fetchurl {
# inherit sha256;
# url =
# "https://github.com/troelsbjerre/Bottleneck/archive/refs/tags/${version}.zip";
# };
# deps = [ ];
# phases = [ "installPhase" ];
# installPhase = ''
# mkdir $out
# cp $src $out/Bottleneck_${version}.zip
# '';
# };
# even-distribution = let
# version = "1.0.10";
# commit-hash = "2f65d82a4da606b82bc597fce2695e7c512ebbfe";
# sha256 = "05y1j8mq2nm163h014510bkv0w06hn97z5v2kay36ilj0rzdpi6j";
# in pkgs.stdenv.mkDerivation {
# inherit version;
# pname = "even-distribution";
# src = pkgs.fetchurl {
# inherit sha256;
# url =
# "https://github.com/321freddy/even-distribution/archive/${commit-hash}.zip";
# };
# deps = [ ];
# phases = [ "installPhase" ];
# installPhase = ''
# mkdir $out
# cp $src $out/even-distribution_${version}.zip
# '';
# };
# mkPlugin = { name, version, url, sha256, deps ? [ ] }:
# let
# fetchurl-auth = { name, url, sha256 }:
# lib.overrideDerivation (pkgs.fetchurl {
# inherit name url sha256;
# curlOpts = [
# "--get"
# "-L"
# "-H"
# "Accept:application/octet-stream"
# "--data-urlencode"
# "username@username"
# "--data-urlencode"
# "token@token"
# ];
# }) (_:
# let
# username = "Exceeding9987";
# token =
# lib.readFile config.fudo.secrets.files.blobs."factorio-token.txt";
# in {
# preHook = if username != "" && token != "" then ''
# echo -n "${username}" >username
# echo -n "${token}" >token
# '' else ''
# # Deliberately failing since username/token was not provided, so we can't fetch.
# # We can't use builtins.throw since we want the result to be used if the tar is in the store already.
# exit 1
# '';
# });
# in pkgs.stdenv.mkDerivation {
# inherit version deps;
# pname = name;
# src = fetchurl-auth { inherit name url sha256; };
# phases = [ "installPhase" ];
# installPhase = ''
# mkdir $out
# cp $src $out/${name}_${version}.zip
# '';
# };
mods = let
modFromFile = file:
pkgs.stdenv.mkDerivation {
name = baseNameOf file;
src = file;
phases = [ "installPhase" ];
installPhase = "cp $src $out";
};
modzip = filename: modFromFile (../../../static/factorio + "/${filename}");
in {
advanced-autonomous-industries = modzip "aai-industry_0.5.19.zip";
alien-biomes = modzip "alien-biomes_0.6.7.zip";
aircraft = modzip "Aircraft_1.8.4.zip";
armored-biters = modzip "ArmoredBiters_1.1.6.zip";
bobs-enemies = modzip "bobenemies_1.1.5.zip";
bottleneck = modzip "Bottleneck_0.11.7.zip";
bullet-trails = modzip "bullet-trails_0.6.2.zip";
even-distribution = modzip "even-distribution_1.0.10.zip";
flow-control = modzip "Flow Control_3.1.3.zip";
fluid-must-flow = modzip "FluidMustFlow_1.3.1.zip";
gdiw = modzip "GDIW_0.17.5.zip";
hovercrafts = modzip "Hovercrafts_1.2.2.zip";
industrial-revolution-2 = modzip "IndustrialRevolution_2.3.2.zip";
krastorio2 = modzip "Krastorio2_1.3.6.zip";
larger-lamps = modzip "DeadlockLargerLamp_1.5.0.zip";
miniloader = modzip "miniloader_1.15.6.zip";
planet-imaging-satellite = modzip "planetImagingSatellite_1.0.3.zip";
rampant = modzip "Rampant_3.1.2.zip";
recipe-book = modzip "RecipeBook_3.4.5.zip";
space-exploration = modzip "space-exploration_0.6.89.zip";
stackers = modzip "deadlock-beltboxes-loaders_2.4.2.zip";
trees = modzip "trees_4.5.1.zip";
vehicle-snap = modzip "VehicleSnap_1.18.4.zip";
};
in {
config.services.factorio = {
enable = true;
public = false;
port = 34197;
lan = false;
game-name = "Fudo Factorio";
description = "Fudo Factorio Server";
admins = [ "fudoniten" "arkayuu" ];
openFirewall = true;
autosave-interval = 10;
loadLatestSave = true;
package = pkgs.factorio-headless-experimental;
# mods = [ bottleneck gdiw ];
mods = with mods; [ bottleneck gdiw ];
};
}