193 lines
5.9 KiB
PHP
193 lines
5.9 KiB
PHP
<?php
|
|
|
|
use Alphaland\Web\WebContextManager;
|
|
|
|
WebContextManager::ForceHttpsCloudflare();
|
|
|
|
//permissions
|
|
if(!($user->isOwner())) {
|
|
if ($user->isAdmin()) {
|
|
redirect("/");
|
|
}
|
|
die('bababooey');
|
|
}
|
|
|
|
//vars
|
|
$setup_html = $GLOBALS['setupHtmlPath']; //path to the setup "cdn"
|
|
$newgameversion = "version-" . bin2hex(openssl_random_pseudo_bytes(8));
|
|
|
|
//get params
|
|
$gamesecurityversion = $_GET['gamesecurityver'];
|
|
$gamemd5hash = $_GET['gamemd5'];
|
|
$gamefileversion = $_GET['gamefilever'];
|
|
$launcherfileversion = $_GET['launcherfilever'];
|
|
$deploytype = $_GET['type'];
|
|
|
|
//posted files
|
|
$files = $_FILES['file']['name'];
|
|
$file = $_FILES['file']['tmp_name'];
|
|
|
|
//expected get parameters
|
|
if ($deploytype == "client") {
|
|
if (empty($gamesecurityversion) ||
|
|
empty($gamemd5hash) ||
|
|
empty($gamefileversion) ||
|
|
empty($launcherfileversion) ||
|
|
empty($deploytype)) {
|
|
echo "Missing Parameters";
|
|
die();
|
|
};
|
|
} else if ($deploytype == "studio") {
|
|
if (empty($gamefileversion) ||
|
|
empty($launcherfileversion)) {
|
|
echo "Missing Parameters";
|
|
die();
|
|
};
|
|
} else {
|
|
echo "Invalid Deploy Type";
|
|
die();
|
|
}
|
|
|
|
$expectedfiles = 0;
|
|
if ($deploytype == "client") {
|
|
$expectedfiles = 13;
|
|
} else if ($deploytype == "studio") {
|
|
$expectedfiles = 16;
|
|
}
|
|
|
|
//expected files count
|
|
if (count($files) != $expectedfiles) {
|
|
echo "Missing files";
|
|
die();
|
|
}
|
|
|
|
//verify the files
|
|
$pass = false;
|
|
foreach ($files as $key=>$val) {
|
|
$filename = $files[$key];
|
|
|
|
//files to deploy
|
|
if ($deploytype == "client")
|
|
{
|
|
if ($filename == "AlphalandApp.zip" ||
|
|
$filename == "AlphalandLauncher.exe" ||
|
|
$filename == "content-fonts.zip" ||
|
|
$filename == "content-music.zip" ||
|
|
$filename == "content-particles.zip" ||
|
|
$filename == "content-sky.zip" ||
|
|
$filename == "content-sounds.zip" ||
|
|
$filename == "content-terrain.zip" ||
|
|
$filename == "content-textures.zip" ||
|
|
$filename == "content-textures2.zip" ||
|
|
$filename == "Libraries.zip" ||
|
|
$filename == "redist.zip" ||
|
|
$filename == "shaders.zip") {
|
|
$pass = true;
|
|
} else {
|
|
$pass = false;
|
|
break;
|
|
}
|
|
}
|
|
else if ($deploytype == "studio")
|
|
{
|
|
if ($filename == "AlphalandStudio.zip" ||
|
|
$filename == "content-scripts.zip" ||
|
|
$filename == "BuiltInPlugins.zip" ||
|
|
$filename == "imageformats.zip" ||
|
|
$filename == "AlphalandStudioLauncher.exe" ||
|
|
$filename == "content-fonts.zip" ||
|
|
$filename == "content-music.zip" ||
|
|
$filename == "content-particles.zip" ||
|
|
$filename == "content-sky.zip" ||
|
|
$filename == "content-sounds.zip" ||
|
|
$filename == "content-terrain.zip" ||
|
|
$filename == "content-textures.zip" ||
|
|
$filename == "content-textures2.zip" ||
|
|
$filename == "Libraries.zip" ||
|
|
$filename == "redist.zip" ||
|
|
$filename == "shaders.zip") {
|
|
$pass = true;
|
|
} else {
|
|
$pass = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($pass) {
|
|
//delete old files
|
|
|
|
$previousdeployversion = "";
|
|
if ($deploytype == "client") {
|
|
$previousdeployversion = $ws->AlphalandVersion;
|
|
} else if ($deploytype == "studio") {
|
|
$previousdeployversion = $ws->AlphalandStudioVersion;
|
|
}
|
|
|
|
//deploy type specific stuff
|
|
if ($deploytype == "client") {
|
|
unlink($setup_html . $previousdeployversion . "-AlphalandApp.zip");
|
|
} else if ($deploytype == "studio") {
|
|
unlink($setup_html . $previousdeployversion . "-AlphalandStudio.zip");
|
|
unlink($setup_html . $previousdeployversion . "-content-scripts.zip");
|
|
unlink($setup_html . $previousdeployversion . "-BuiltInPlugins.zip");
|
|
unlink($setup_html . $previousdeployversion . "-imageformats.zip");
|
|
}
|
|
|
|
//these files are common between builds
|
|
unlink($setup_html . $previousdeployversion . "-content-fonts.zip");
|
|
unlink($setup_html . $previousdeployversion . "-content-music.zip");
|
|
unlink($setup_html . $previousdeployversion . "-content-particles.zip");
|
|
unlink($setup_html . $previousdeployversion . "-content-sky.zip");
|
|
unlink($setup_html . $previousdeployversion . "-content-sounds.zip");
|
|
unlink($setup_html . $previousdeployversion . "-content-terrain.zip");
|
|
unlink($setup_html . $previousdeployversion . "-content-textures.zip");
|
|
unlink($setup_html . $previousdeployversion . "-content-textures2.zip");
|
|
unlink($setup_html . $previousdeployversion . "-Libraries.zip");
|
|
unlink($setup_html . $previousdeployversion . "-redist.zip");
|
|
unlink($setup_html . $previousdeployversion . "-shaders.zip");
|
|
unlink($setup_html . $previousdeployversion . "-AlphalandLauncher.exe");
|
|
unlink($setup_html . $previousdeployversion . "-BootstrapperVersion.txt");
|
|
|
|
//move all the files
|
|
foreach ($files as $key=>$val) {
|
|
move_uploaded_file($file[$key], $setup_html . $newgameversion . "-" . $files[$key]);
|
|
}
|
|
|
|
//write appropriate version txt
|
|
$versiontextname = "";
|
|
if ($deploytype == "client") {
|
|
$versiontextname = "-BootstrapperVersion.txt";
|
|
} else if ($deploytype == "studio") {
|
|
$versiontextname = "-BootstrapperQTStudioVersion.txt";
|
|
}
|
|
|
|
$fp = fopen($setup_html . $newgameversion . $versiontextname,"wb");
|
|
fwrite($fp,$launcherfileversion);
|
|
fclose($fp);
|
|
|
|
//update in db
|
|
if ($deploytype == "client") {
|
|
$updatewebsettings = $pdo->prepare("UPDATE websettings SET AlphalandVersion = :av, security_version = :sv, md5_hash = :mh, GameFileVersion = :gv");
|
|
$updatewebsettings->bindParam(":av", $newgameversion, PDO::PARAM_STR);
|
|
$updatewebsettings->bindParam(":sv", $gamesecurityversion, PDO::PARAM_STR);
|
|
$updatewebsettings->bindParam(":mh", $gamemd5hash, PDO::PARAM_STR);
|
|
$updatewebsettings->bindParam(":gv", $gamefileversion, PDO::PARAM_STR);
|
|
$updatewebsettings->execute();
|
|
} else if ($deploytype == "studio") {
|
|
$updatewebsettings = $pdo->prepare("UPDATE websettings SET AlphalandStudioVersion = :asv, StudioFileVersion = :sfv");
|
|
$updatewebsettings->bindParam(":asv", $newgameversion, PDO::PARAM_STR);
|
|
$updatewebsettings->bindParam(":sfv", $gamefileversion, PDO::PARAM_STR);
|
|
$updatewebsettings->execute();
|
|
}
|
|
|
|
//output the new version
|
|
|
|
if ($deploytype == "client") {
|
|
echo "Deployed Client: " . $newgameversion;
|
|
} else if ($deploytype == "studio") {
|
|
echo "Deployed Studio: " . $newgameversion;
|
|
}
|
|
} else {
|
|
echo "Invalid Files";
|
|
} |