Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
ced6600f75 WIP settlers2 2019-02-01 17:54:21 +01:00
3 changed files with 73 additions and 0 deletions

View file

@ -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;
}

5
gog/default.nix Normal file
View file

@ -0,0 +1,5 @@
{ pkgs ? import <nixpkgs> {} }:
{
settlers2 = pkgs.callPackage ./settlers2/default.nix {};
}

66
gog/settlers2/default.nix Normal file
View file

@ -0,0 +1,66 @@
{ pkgs ? import <nixpkgs> {} }:
let
_basename = "settlers2_gold";
_version = "2.0.0.14";
setup_exe = pkgs.requireFile rec {
name = "setup_${_basename}_${_version}.exe";
message = "Please download ${name} from https://gog.com/.";
sha256 = "19c88h972ydfpdbay61lz6pi4gnlm2lq5dcya5im9mmlin2nvyr7";
};
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 ./app $out/share/${_basename}/
'';
};
game_wrapped = pkgs.stdenv.mkDerivation rec {
name = "${_basename}-wrapped-${_version}";
version = _version;
buildInputs = with pkgs; [ game_extracted dosbox ];
unpackPhase = ''
wrestool -x -t 14 "${game_extracted}/${_basename}/app/S2EDIT.EXE" > "${_basename}_edit.ico"
wrestool -x -t 14 "${game_extracted}/${_basename}/app/S2.EXE" > "${_basename}.ico"
'';
buildPhase = ":";
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/share/icons/hicolor/{32x32}/apps
cp "${_basename}_edit.ico" $out/share/icons/hicolor/32x32/apps/
cp "${_basename}.ico" $out/share/icons/hicolor/32x32/apps/
cat << EOF > $out/bin/${_basename}_edit
#!${pkgs.bash}/bin/bash
EOF
chmod +x $out/bin/${_basename}_edit
cat << EOF > $out/bin/${_basename}
#!${pkgs.bash}/bin/bash
${pkgs.wine}/bin/wine "${game_extracted}/share/${_basename}/Stronghold_Crusader_Extreme.exe"
EOF
chmod +x $out/bin/${_basename}
'';
};
in game_extracted