1
0

pkgs/factorio-launcher: Add wrapper to launch factorio

This commit is contained in:
clerie 2024-12-09 20:34:07 +01:00
parent 36c6ada07c
commit 75af9b7383
6 changed files with 59 additions and 0 deletions

View File

@ -126,6 +126,7 @@
clerie-sops-config clerie-sops-config
clerie-sops-edit clerie-sops-edit
chromium-incognito chromium-incognito
factorio-launcher
git-checkout-github-pr git-checkout-github-pr
git-diff-word git-diff-word
git-pp git-pp

View File

@ -29,6 +29,8 @@
chromium-incognito chromium-incognito
print-afra print-afra
factorio-launcher
]; ];
# Wireshark # Wireshark

View File

@ -9,6 +9,8 @@
#cura # libarcus library is currently broken, required for curaengine #cura # libarcus library is currently broken, required for curaengine
mumble mumble
factorio-launcher
]; ];
} }

View File

@ -0,0 +1,25 @@
{ pkgs, lib, ... }:
pkgs.buildFHSEnv {
name = "factorio-launcher";
targetPkgs = pkgs: (with pkgs; [
alsa-lib
libGL
libpulseaudio
libxkbcommon
wayland
]) ++ (with pkgs.xorg; [
libICE
libSM
libX11
libXcursor
libXext
libXi
libXinerama
libXrandr
]);
runScript = lib.getExe (pkgs.writeShellApplication {
name = "launch-factorio";
text = builtins.readFile ./launch-factorio.sh;
});
}

View File

@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -euo pipefail
if [[ $# -eq 0 ]]; then
echo "Pass path to factorio install directory as first argument"
exit 1
fi
FACTORIO_BINARY_PATH=""
for suffix in "" "/factorio" "/x64/factorio" "/bin/x64/factorio" "/factorio/bin/x64/factorio"; do
if [[ -f "$1${suffix}" && -x "$1${suffix}" ]]; then
FACTORIO_BINARY_PATH="$1${suffix}"
break
fi
done
if [[ -z $FACTORIO_BINARY_PATH ]]; then
echo "No factorio executable found below $1"
exit 1
fi
shift
set -- "${FACTORIO_BINARY_PATH}" "$@"
exec "$@"

View File

@ -7,6 +7,7 @@ final: prev: {
clerie-sops-edit = final.callPackage ./clerie-sops/clerie-sops-edit.nix {}; clerie-sops-edit = final.callPackage ./clerie-sops/clerie-sops-edit.nix {};
clerie-update-nixfiles = final.callPackage ./clerie-update-nixfiles/clerie-update-nixfiles.nix {}; clerie-update-nixfiles = final.callPackage ./clerie-update-nixfiles/clerie-update-nixfiles.nix {};
chromium-incognito = final.callPackage ./chromium-incognito {}; chromium-incognito = final.callPackage ./chromium-incognito {};
factorio-launcher = final.callPackage ./factorio-launcher {};
git-checkout-github-pr = final.callPackage ./git-checkout-github-pr {}; git-checkout-github-pr = final.callPackage ./git-checkout-github-pr {};
git-diff-word = final.callPackage ./git-diff-word {}; git-diff-word = final.callPackage ./git-diff-word {};
git-pp = final.callPackage ./git-pp {}; git-pp = final.callPackage ./git-pp {};