diff options
Diffstat (limited to 'krebs')
-rw-r--r-- | krebs/4lib/infest/prepare.sh | 3 | ||||
-rw-r--r-- | krebs/5pkgs/simple/ftb/default.nix | 51 |
2 files changed, 54 insertions, 0 deletions
diff --git a/krebs/4lib/infest/prepare.sh b/krebs/4lib/infest/prepare.sh index 78c1c6ec1..cbc62102c 100644 --- a/krebs/4lib/infest/prepare.sh +++ b/krebs/4lib/infest/prepare.sh @@ -81,6 +81,9 @@ prepare_debian() { } prepare_nixos_iso() { + _which() ( + type -p "$1" + ) mountpoint /mnt type git 2>/dev/null || nix-env -iA nixos.git diff --git a/krebs/5pkgs/simple/ftb/default.nix b/krebs/5pkgs/simple/ftb/default.nix new file mode 100644 index 000000000..199c12b44 --- /dev/null +++ b/krebs/5pkgs/simple/ftb/default.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchurl, makeDesktopItem +, jre, libX11, libXext, libXcursor, libXrandr, libXxf86vm +, openjdk +, mesa, openal +, useAlsa ? false, alsaOss ? null }: +with stdenv.lib; + +assert useAlsa -> alsaOss != null; + +let + desktopItem = makeDesktopItem { + name = "minecraft"; + exec = "minecraft"; + icon = "minecraft"; + comment = "A sandbox-building game"; + desktopName = "Minecraft"; + genericName = "minecraft"; + categories = "Game;"; + }; + +in stdenv.mkDerivation { + name = "ftb"; + + src = fetchurl { + url = "http://ftb.cursecdn.com/FTB2/launcher/FTB_Launcher.jar"; + sha256 = "10ga4jgyfsj5dy4rj2rla0fpnfpnxv8r3bmxpqpwn7fsry4il79v"; + }; + + phases = "installPhase"; + + installPhase = '' + set -x + mkdir -pv $out/bin + cp -v $src $out/ftb.jar + + cat > $out/bin/ftb << EOF + #!${stdenv.shell} + + export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm mesa openal ]} + ${if useAlsa then "${alsaOss}/bin/aoss" else "" } \ + ${jre}/bin/java -jar $out/ftb.jar + EOF + + chmod +x $out/bin/ftb + + mkdir -p $out/share/applications + ln -s ${desktopItem}/share/applications/* $out/share/applications/ + + ${openjdk}/bin/jar xf $out/ftb.jar favicon.png + ''; +} |