Restructured flake
This commit is contained in:
parent
53096fdc3e
commit
7e1f66d324
29
flake.lock
generated
29
flake.lock
generated
@ -72,7 +72,9 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747526922,
|
"lastModified": 1747526922,
|
||||||
@ -92,7 +94,7 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747526922,
|
"lastModified": 1747526922,
|
||||||
@ -111,7 +113,9 @@
|
|||||||
"nix-modpack": {
|
"nix-modpack": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nix-minecraft": "nix-minecraft_2",
|
"nix-minecraft": "nix-minecraft_2",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"path": "./nix-modpack",
|
"path": "./nix-modpack",
|
||||||
@ -140,22 +144,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1742889210,
|
|
||||||
"narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "698214a32beb4f4c8e3942372c694f40848b360d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747327360,
|
"lastModified": 1747327360,
|
||||||
"narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=",
|
"narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=",
|
||||||
@ -174,7 +162,8 @@
|
|||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nix-minecraft": "nix-minecraft",
|
"nix-minecraft": "nix-minecraft",
|
||||||
"nix-modpack": "nix-modpack"
|
"nix-modpack": "nix-modpack",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
|
33
flake.nix
33
flake.nix
@ -2,17 +2,40 @@
|
|||||||
description = "Minecraft Modpack";
|
description = "Minecraft Modpack";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
nix-modpack.url = "./nix-modpack";
|
nix-modpack.url = "./nix-modpack";
|
||||||
|
nix-modpack.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
nix-minecraft.url = "github:Jan-Bulthuis/nix-minecraft";
|
nix-minecraft.url = "github:Jan-Bulthuis/nix-minecraft";
|
||||||
|
nix-minecraft.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
inputs:
|
inputs:
|
||||||
inputs.nix-modpack (system: {
|
let
|
||||||
|
lib = inputs.nixpkgs.lib;
|
||||||
|
eachSystem =
|
||||||
|
fn: lib.genAttrs lib.systems.flakeExposed (system: fn (import inputs.nixpkgs { inherit system; }));
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages = eachSystem (pkgs: {
|
||||||
|
server = inputs.nix-modpack.packages.${pkgs.system}.mkServer {
|
||||||
packUrl = "https://git.bulthuis.dev/Jan/Modpack/raw/branch/main/pack.toml";
|
packUrl = "https://git.bulthuis.dev/Jan/Modpack/raw/branch/main/pack.toml";
|
||||||
server = inputs.nix-minecraft.legacyPackages.${system}.neoForgeServers.neoforge-21_1_172;
|
server = inputs.nix-minecraft.legacyPackages.${pkgs.system}.neoForgeServers.neoforge-21_1_172;
|
||||||
clientGameVersion = "1.21.1";
|
};
|
||||||
clientLoaderUid = "net.neoforged";
|
client = inputs.nix-modpack.packages.${pkgs.system}.mkClient {
|
||||||
clientLoaderVersion = "21.1.172";
|
packUrl = "https://git.bulthuis.dev/Jan/Modpack/raw/branch/main/pack.toml";
|
||||||
|
gameVersion = "1.21.1";
|
||||||
|
loaderUid = "net.neoforged";
|
||||||
|
loaderVersion = "21.1.172";
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
devShells = eachSystem (pkgs: {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
packwiz
|
||||||
|
];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -6,13 +6,25 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{ nixpkgs, nix-minecraft, ... }:
|
inputs:
|
||||||
let
|
let
|
||||||
lib = import ./lib {
|
lib = inputs.nixpkgs.lib;
|
||||||
inherit nixpkgs nix-minecraft;
|
eachSystem =
|
||||||
|
fn: lib.genAttrs lib.systems.flakeExposed (system: fn (import inputs.nixpkgs { inherit system; }));
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages = eachSystem (
|
||||||
|
pkgs:
|
||||||
|
let
|
||||||
|
bootstrap = pkgs.fetchurl {
|
||||||
|
url = "https://github.com/packwiz/packwiz-installer-bootstrap/releases/download/v0.0.3/packwiz-installer-bootstrap.jar";
|
||||||
|
sha256 = "qPuyTcYEJ46X9GiOgtPZGjGLmO/AjV2/y8vKtkQ9EWw=";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
__functor = _: lib;
|
mkServer = pkgs.callPackage ./packages/mkServer.nix { inherit bootstrap; };
|
||||||
|
mkClient = pkgs.callPackage ./packages/mkClient.nix { inherit bootstrap; };
|
||||||
|
}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,97 +0,0 @@
|
|||||||
{ nixpkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
lib = nixpkgs.lib;
|
|
||||||
|
|
||||||
eachSystem =
|
|
||||||
fn: lib.genAttrs lib.systems.flakeExposed (system: fn (import nixpkgs { inherit system; }));
|
|
||||||
|
|
||||||
mkModpack =
|
|
||||||
builder:
|
|
||||||
let
|
|
||||||
mkPackages =
|
|
||||||
pkgs:
|
|
||||||
let
|
|
||||||
bootstrap = pkgs.fetchurl {
|
|
||||||
url = "https://github.com/packwiz/packwiz-installer-bootstrap/releases/download/v0.0.3/packwiz-installer-bootstrap.jar";
|
|
||||||
sha256 = "qPuyTcYEJ46X9GiOgtPZGjGLmO/AjV2/y8vKtkQ9EWw=";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInfo = builder pkgs.system;
|
|
||||||
in
|
|
||||||
rec {
|
|
||||||
default = server;
|
|
||||||
server = pkgs.writeShellScriptBin "minecraft-server" ''
|
|
||||||
${lib.getExe pkgs.jre} -jar ${bootstrap} -g -s server ${buildInfo.packUrl}
|
|
||||||
${buildInfo.server}/bin/minecraft-server
|
|
||||||
'';
|
|
||||||
client = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
name = "minecraft-client";
|
|
||||||
|
|
||||||
dontUnpack = true;
|
|
||||||
|
|
||||||
mmcpack = ''
|
|
||||||
{
|
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"important": true,
|
|
||||||
"uid": "net.minecraft",
|
|
||||||
"version": "${buildInfo.clientGameVersion}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"uid": "${buildInfo.clientLoaderUid}",
|
|
||||||
"version": "${buildInfo.clientLoaderVersion}"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"formatVersion": 1
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
instancecfg = pkgs.writeText "instance.cfg" ''
|
|
||||||
[General]
|
|
||||||
ConfigVersion=1.2
|
|
||||||
InstanceType=OneSix
|
|
||||||
OverrideCommands=true
|
|
||||||
PreLaunchCommand=\"$INST_JAVA\" -jar packwiz-installer-bootstrap.jar ${buildInfo.packUrl}
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
# Remove env-vars
|
|
||||||
rm env-vars
|
|
||||||
|
|
||||||
# Add the mmc-pack
|
|
||||||
echo $mmcpack > ./mmc-pack.json
|
|
||||||
|
|
||||||
# Add the instance-cfg
|
|
||||||
cp $instancecfg ./instance.cfg
|
|
||||||
|
|
||||||
# Add the bootstrap jar
|
|
||||||
mkdir ./minecraft
|
|
||||||
cp ${bootstrap} ./minecraft/packwiz-installer-bootstrap.jar
|
|
||||||
|
|
||||||
# Zip everything together
|
|
||||||
${pkgs.zip}/bin/zip -r modpack.zip ./*
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir $out
|
|
||||||
mv modpack.zip $out/
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
overlay = final: prev: mkPackages prev;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
inherit overlay;
|
|
||||||
packages = eachSystem mkPackages;
|
|
||||||
devShells = eachSystem (pkgs: {
|
|
||||||
default = pkgs.mkShell {
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
packwiz
|
|
||||||
];
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
in
|
|
||||||
mkModpack
|
|
67
nix-modpack/packages/mkClient.nix
Normal file
67
nix-modpack/packages/mkClient.nix
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
bootstrap,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
packUrl,
|
||||||
|
gameVersion,
|
||||||
|
loaderUid,
|
||||||
|
loaderVersion,
|
||||||
|
}:
|
||||||
|
|
||||||
|
pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
name = "minecraft-client";
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
|
||||||
|
mmcpack = ''
|
||||||
|
{
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"important": true,
|
||||||
|
"uid": "net.minecraft",
|
||||||
|
"version": "${gameVersion}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uid": "${loaderUid}",
|
||||||
|
"version": "${loaderVersion}"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"formatVersion": 1
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
instancecfg = pkgs.writeText "instance.cfg" ''
|
||||||
|
[General]
|
||||||
|
ConfigVersion=1.2
|
||||||
|
InstanceType=OneSix
|
||||||
|
OverrideCommands=true
|
||||||
|
PreLaunchCommand=\"$INST_JAVA\" -jar packwiz-installer-bootstrap.jar ${packUrl}
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
# Remove env-vars
|
||||||
|
rm env-vars
|
||||||
|
|
||||||
|
# Add the mmc-pack
|
||||||
|
echo $mmcpack > ./mmc-pack.json
|
||||||
|
|
||||||
|
# Add the instance-cfg
|
||||||
|
cp $instancecfg ./instance.cfg
|
||||||
|
|
||||||
|
# Add the bootstrap jar
|
||||||
|
mkdir ./minecraft
|
||||||
|
cp ${bootstrap} ./minecraft/packwiz-installer-bootstrap.jar
|
||||||
|
|
||||||
|
# Zip everything together
|
||||||
|
${pkgs.zip}/bin/zip -r modpack.zip ./*
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir $out
|
||||||
|
mv modpack.zip $out/
|
||||||
|
'';
|
||||||
|
}
|
17
nix-modpack/packages/mkServer.nix
Normal file
17
nix-modpack/packages/mkServer.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
bootstrap,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
packUrl,
|
||||||
|
server,
|
||||||
|
jre ? pkgs.jre,
|
||||||
|
}:
|
||||||
|
|
||||||
|
pkgs.writeShellScriptBin "minecraft-server" ''
|
||||||
|
${lib.getExe jre} -jar ${bootstrap} -g -s server ${packUrl}
|
||||||
|
${server}/bin/minecraft-server
|
||||||
|
''
|
Loading…
x
Reference in New Issue
Block a user