add mapfm poster back
This commit is contained in:
parent
47a4f3f9a7
commit
d3662d77d0
8 changed files with 341 additions and 191 deletions
|
|
@ -1,30 +1,43 @@
|
|||
{lib, pkgs, config, ...}: let
|
||||
factorioVersion = version: sha: pkgs.factorio-headless.overrideAttrs (_: {
|
||||
inherit version;
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://factorio.com/get-download/${version}/headless/linux64";
|
||||
name = "factorio-headless-${version}.tar.xz";
|
||||
sha256 = sha;
|
||||
};
|
||||
});
|
||||
getMods = modDir: let
|
||||
modList = lib.pipe modDir [
|
||||
builtins.readDir
|
||||
(lib.filterAttrs (k: v: v == "regular"))
|
||||
(lib.mapAttrsToList (k: v: k))
|
||||
(builtins.filter (lib.hasSuffix ".zip"))
|
||||
];
|
||||
validPath = modFileName:
|
||||
builtins.path {
|
||||
path = modDir + "/${modFileName}";
|
||||
name = lib.strings.sanitizeDerivationName modFileName;
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
factorioVersion =
|
||||
version: sha:
|
||||
pkgs.factorio-headless.overrideAttrs (_: {
|
||||
inherit version;
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://factorio.com/get-download/${version}/headless/linux64";
|
||||
name = "factorio-headless-${version}.tar.xz";
|
||||
sha256 = sha;
|
||||
};
|
||||
modToDrv = modFileName:
|
||||
pkgs.runCommand "copy-factorio-mods" {} ''
|
||||
mkdir $out
|
||||
ln -s '${validPath modFileName}' $out/'${modFileName}'
|
||||
''
|
||||
// { deps = []; };
|
||||
});
|
||||
getMods =
|
||||
modDir:
|
||||
let
|
||||
modList = lib.pipe modDir [
|
||||
builtins.readDir
|
||||
(lib.filterAttrs (k: v: v == "regular"))
|
||||
(lib.mapAttrsToList (k: v: k))
|
||||
(builtins.filter (lib.hasSuffix ".zip"))
|
||||
];
|
||||
validPath =
|
||||
modFileName:
|
||||
builtins.path {
|
||||
path = modDir + "/${modFileName}";
|
||||
name = lib.strings.sanitizeDerivationName modFileName;
|
||||
};
|
||||
modToDrv =
|
||||
modFileName:
|
||||
pkgs.runCommand "copy-factorio-mods" { } ''
|
||||
mkdir $out
|
||||
ln -s '${validPath modFileName}' $out/'${modFileName}'
|
||||
''
|
||||
// {
|
||||
deps = [ ];
|
||||
};
|
||||
in
|
||||
builtins.map modToDrv modList;
|
||||
factorioContainer = name: factorio-config: {
|
||||
|
|
@ -46,27 +59,33 @@
|
|||
};
|
||||
privateUsers = "no";
|
||||
|
||||
config = { config, pkgs, lib, ... }: {
|
||||
systemd.services.factorio.serviceConfig.User = "factorio";
|
||||
services.factorio = factorio-config // {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
config =
|
||||
{ config
|
||||
, pkgs
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
{
|
||||
systemd.services.factorio.serviceConfig.User = "factorio";
|
||||
services.factorio = factorio-config // {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
|
||||
game-name = name;
|
||||
saveName = name;
|
||||
stateDirName = "factorio";
|
||||
game-name = name;
|
||||
saveName = name;
|
||||
stateDirName = "factorio";
|
||||
};
|
||||
|
||||
nixpkgs.config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
|
||||
system.stateVersion = "23.11";
|
||||
|
||||
networking = {
|
||||
firewall.enable = false;
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
|
||||
system.stateVersion = "23.11";
|
||||
|
||||
networking = {
|
||||
firewall.enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
|
|
@ -85,20 +104,31 @@ in
|
|||
owner = "factorio";
|
||||
};
|
||||
|
||||
containers = factorioContainer "tawney" {
|
||||
autosave-interval = 20;
|
||||
admins = [ "jonay2000" "computerdruid" "pineapple" ];
|
||||
extraSettingsFile = config.sops.secrets.factorio.path;
|
||||
# mods = getMods ../../factorio-mods/tawney;
|
||||
package = factorioVersion "2.0.66" "sha256-8bOXbqzE4jOADTmdkABsNW+jZvXWQ0HFBMlcDLoyHAY=";
|
||||
port = 20001;
|
||||
}
|
||||
// factorioContainer "snek" {
|
||||
autosave-interval = 20;
|
||||
admins = [ "jonay2000" "computerdruid" "pineapple" ];
|
||||
extraSettingsFile = config.sops.secrets.factorio.path;
|
||||
mods = getMods ../../factorio-mods/snek;
|
||||
package = factorioVersion "2.0.66" "sha256-8bOXbqzE4jOADTmdkABsNW+jZvXWQ0HFBMlcDLoyHAY=";
|
||||
port = 20002;
|
||||
};
|
||||
containers =
|
||||
factorioContainer "tawney"
|
||||
{
|
||||
autosave-interval = 20;
|
||||
admins = [
|
||||
"jonay2000"
|
||||
"computerdruid"
|
||||
"pineapple"
|
||||
];
|
||||
extraSettingsFile = config.sops.secrets.factorio.path;
|
||||
# mods = getMods ../../factorio-mods/tawney;
|
||||
package = factorioVersion "2.0.69" "sha256-I1FHuz7WtfCmmTiTxskv3+U1upWrhmBG9R+GUoS1c0E=";
|
||||
port = 20001;
|
||||
}
|
||||
// factorioContainer "snek" {
|
||||
autosave-interval = 20;
|
||||
admins = [
|
||||
"jonay2000"
|
||||
"computerdruid"
|
||||
"pineapple"
|
||||
"koragendum"
|
||||
];
|
||||
extraSettingsFile = config.sops.secrets.factorio.path;
|
||||
mods = getMods ../../factorio-mods/snek;
|
||||
package = factorioVersion "2.0.69" "sha256-I1FHuz7WtfCmmTiTxskv3+U1upWrhmBG9R+GUoS1c0E=";
|
||||
port = 20002;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue