103 lines
3.5 KiB
Nix
103 lines
3.5 KiB
Nix
{
|
|
lib,
|
|
stdenvNoCC,
|
|
unar,
|
|
appName,
|
|
fetchurl,
|
|
...
|
|
}:
|
|
builtins.mapAttrs
|
|
(
|
|
name: buildCommand:
|
|
stdenvNoCC.mkDerivation {
|
|
inherit name buildCommand;
|
|
nativeBuildInputs = [ unar ];
|
|
meta = {
|
|
sourceProvenance = with lib.sourceTypes; [
|
|
binaryBytecode
|
|
];
|
|
license = with lib.licenses; [
|
|
unfree
|
|
];
|
|
};
|
|
}
|
|
)
|
|
(
|
|
if appName == "vanillatd" then
|
|
let
|
|
CCDEMO1_ZIP = fetchurl {
|
|
url = "https://archive.org/download/CommandConquerDemo/cc1demo1.zip";
|
|
hash = "sha256-KdM4SctFCocmJCbMWbJbql4DO5TC40leyU+BPzvAn4c=";
|
|
};
|
|
CCDEMO2_ZIP = fetchurl {
|
|
url = "https://archive.org/download/CommandConquerDemo/cc1demo2.zip";
|
|
hash = "sha256-pCgEuE5AFcJur3qUOTmP3GCb/Wp7p7JyVn8Yeq17PEg=";
|
|
};
|
|
demo = ''
|
|
unar -no-directory ${CCDEMO1_ZIP} DEMO.MIX DEMOL.MIX SOUNDS.MIX SPEECH.MIX
|
|
unar -no-directory ${CCDEMO2_ZIP} DEMOM.MIX
|
|
mkdir -p $out
|
|
mv DEMO.MIX $out/demo.mix
|
|
mv DEMOL.MIX $out/demol.mix
|
|
mv SOUNDS.MIX $out/sounds.mix
|
|
mv SPEECH.MIX $out/speech.mix
|
|
mv DEMOM.MIX $out/demom.mix
|
|
'';
|
|
in
|
|
# see https://github.com/TheAssemblyArmada/Vanilla-Conquer/wiki/Installing-VanillaTD
|
|
{
|
|
inherit demo;
|
|
}
|
|
else if appName == "vanillara" then
|
|
let
|
|
RA95DEMO_ZIP = fetchurl {
|
|
url = "https://archive.org/download/CommandConquerRedAlert_1020/ra95demo.zip";
|
|
hash = "sha256-jEi9tTUj6k01OnkU2SNM5OPm9YMu60eztrAFhT6HSNI=";
|
|
};
|
|
demo = ''
|
|
unar -no-directory ${RA95DEMO_ZIP} ra95demo/INSTALL/MAIN.MIX ra95demo/INSTALL/REDALERT.MIX
|
|
install -D ra95demo/INSTALL/REDALERT.MIX $out/redalert.mix
|
|
install -D ra95demo/INSTALL/MAIN.MIX $out/main.mix
|
|
'';
|
|
REDALERT_ALLIED_ISO = fetchurl {
|
|
url = "https://archive.org/download/cnc-red-alert/redalert_allied.iso";
|
|
hash = "sha256-Npx6hSTJetFlcb/Fi3UQEGuP0iLk9LIrRmAI7WgEtdw=";
|
|
};
|
|
REDALERT_SOVIETS_ISO = fetchurl {
|
|
url = "https://archive.org/download/cnc-red-alert/redalert_soviets.iso";
|
|
hash = "sha256-aJGr+w1BaGaLwX/pU0lMmu6Cgn9pZ2D/aVafBdtds2Q=";
|
|
};
|
|
retail-allied = ''
|
|
unar -output-directory allied -no-directory ${REDALERT_ALLIED_ISO} MAIN.MIX INSTALL/REDALERT.MIX
|
|
mkdir -p $out/allied/
|
|
mv allied/INSTALL/REDALERT.MIX $out/redalert.mix
|
|
mv allied/MAIN.MIX $out/allied/main.mix
|
|
'';
|
|
retail-soviet = ''
|
|
unar -output-directory soviet -no-directory ${REDALERT_SOVIETS_ISO} MAIN.MIX INSTALL/REDALERT.MIX
|
|
mkdir -p $out/soviet/
|
|
mv soviet/INSTALL/REDALERT.MIX $out/redalert.mix
|
|
mv soviet/MAIN.MIX $out/soviet/main.mix
|
|
'';
|
|
retail = ''
|
|
unar -output-directory allied -no-directory ${REDALERT_ALLIED_ISO} MAIN.MIX INSTALL/REDALERT.MIX
|
|
unar -output-directory soviet -no-directory ${REDALERT_SOVIETS_ISO} MAIN.MIX
|
|
mkdir -p $out/allied/ $out/soviet/
|
|
mv allied/INSTALL/REDALERT.MIX $out/redalert.mix
|
|
mv allied/MAIN.MIX $out/allied/main.mix
|
|
mv soviet/MAIN.MIX $out/soviet/main.mix
|
|
'';
|
|
in
|
|
# see https://github.com/TheAssemblyArmada/Vanilla-Conquer/wiki/Installing-VanillaRA
|
|
{
|
|
inherit
|
|
demo
|
|
retail-allied
|
|
retail-soviet
|
|
retail
|
|
;
|
|
}
|
|
else
|
|
{ }
|
|
)
|