Restructured flake
This commit is contained in:
1 parent
53096fdc3e
commit
7e1f66d324
6 files changed
+140
-129
No files matched your search
+17
-5
@@ -6,13 +6,25 @@
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ nixpkgs, nix-minecraft, ... }:
|
||||
inputs:
|
||||
let
|
||||
lib = import ./lib {
|
||||
inherit nixpkgs nix-minecraft;
|
||||
};
|
||||
lib = inputs.nixpkgs.lib;
|
||||
eachSystem =
|
||||
fn: lib.genAttrs lib.systems.flakeExposed (system: fn (import inputs.nixpkgs { inherit system; }));
|
||||
in
|
||||
{
|
||||
__functor = _: lib;
|
||||
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
|
||||
{
|
||||
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
|
||||
@@ -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/
|
||||
'';
|
||||
}
|
||||
@@ -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
|
||||
''
|
||||
Reference in new issue
Block a user