From 49faba62666f2605ddce2a16e08a06e3b6686b00 Mon Sep 17 00:00:00 2001 From: Jakob Klepp Date: Sun, 27 Jan 2019 23:35:04 +0100 Subject: [PATCH] WIP Stronghold Crusaders package --- default.nix | 2 + gog/default.nix | 5 +++ gog/stronghold-crusader/default.nix | 67 +++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 gog/default.nix create mode 100644 gog/stronghold-crusader/default.nix diff --git a/default.nix b/default.nix index 6f07ded..9a2ee8b 100644 --- a/default.nix +++ b/default.nix @@ -6,5 +6,7 @@ wildfly = pkgs.callPackage ./wildfly/default.nix {}; postman_appimage = pkgs.callPackage ./postman-appimage/default.nix {}; + gog = import ./gog/default.nix {}; + services = import ./services/default.nix; } \ No newline at end of file diff --git a/gog/default.nix b/gog/default.nix new file mode 100644 index 0000000..58b4667 --- /dev/null +++ b/gog/default.nix @@ -0,0 +1,5 @@ +{ pkgs ? import {} }: + +{ + stronghold_crusader = pkgs.callPackage ./stronghold-crusader/default.nix {}; +} \ No newline at end of file diff --git a/gog/stronghold-crusader/default.nix b/gog/stronghold-crusader/default.nix new file mode 100644 index 0000000..0cc3a9c --- /dev/null +++ b/gog/stronghold-crusader/default.nix @@ -0,0 +1,67 @@ +{ pkgs ? import {} }: + +let + +_basename = "stronghold-crusader"; +_version = "1.41_20410"; + +setup_exe = pkgs.requireFile rec { + name = "setup_stronghold_crusader_extreme_hd_${_version}.exe"; + message = "Please download ${name} from https://gog.com/."; + sha256 = "05crr9801biasbb57yj6vcr65kz6y7hwgcijjbhlxwpzk4fsgxfv"; +}; + +game_extracted = pkgs.stdenv.mkDerivation rec { + name = "${_basename}-extracted-${_version}"; + version = _version; + + src = setup_exe; + + nativeBuildInputs = with pkgs; [ innoextract ]; + + unpackPhase = '' + innoextract --gog --extract $src + ''; + + buildPhase = ":"; + + installPhase = '' + mkdir -p $out/share/${_basename} + cp -R . $out/share/${_basename}/ + ''; +}; + +game_wrapped = pkgs.stdenv.mkDerivation rec { + name = "${_basename}-wrapped-${_version}"; + version = _version; + buildInputs = with pkgs; [ game_extracted wine icoutils ]; + + unpackPhase = '' + wrestool -x -t 14 "${game_extracted}/share/${_basename}/Stronghold Crusader.exe" > stronghold_crusader.ico + wrestool -x -t 14 "${game_extracted}/share/${_basename}/Stronghold_Crusader_Extreme.exe" > stronghold_crusader_extreme.ico + ''; + + buildPhase = ":"; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/icons/hicolor/{32x32,256x256}/apps + + cp 'stronghold_crusader.ico' $out/share/icons/hicolor/256x256/apps/ + cp 'stronghold_crusader_extreme.ico' $out/share/icons/hicolor/32x32/apps/ + + cat << EOF > $out/bin/stronghold_crusader + #!${pkgs.bash}/bin/bash + ${pkgs.wine}/bin/wine "${game_extracted}/share/${_basename}/Stronghold Crusader.exe" + EOF + chmod +x $out/bin/stronghold_crusader + + cat << EOF > $out/bin/stronghold_crusader_extreme + #!${pkgs.bash}/bin/bash + ${pkgs.wine}/bin/wine "${game_extracted}/share/${_basename}/Stronghold_Crusader_Extreme.exe" + EOF + chmod +x $out/bin/stronghold_crusader_extreme + ''; +}; + +in game_wrapped