Skip to content

Instantly share code, notes, and snippets.

@TruDan
Created September 23, 2012 19:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TruDan/0eb2abf064045f853b16 to your computer and use it in GitHub Desktop.
Save TruDan/0eb2abf064045f853b16 to your computer and use it in GitHub Desktop.
Update BukkitDev Images
<?php
$ROOT = "/home/admin/SpyroDev";
function updateReleaseImage($project) {
global $ROOT;
// Get last successful build info
$xml = file_get_contents('http://dev.bukkit.org/server-mods/'.strtolower($project).'/files.rss');
$xmlobj = simplexml_load_string($xml);
//var_dump($xmlobj->channel);
foreach($xmlobj->channel->item as $item) {
$version = trim(preg_replace('/\s*\([^)]*\)/', '', $item->title));
$vars = explode('-',$version, 2);
$version = trim($vars[1]);
$project = trim($vars[0]);
$ciVersion = trim(strip_tags(end(explode("Jenkins CI Build Version:",$item->description))));
// http://jenkins.roguedraco.net/job/JumpPorts/lastSuccessfulBuild/net.roguedraco$JumpPorts/artifact/net.roguedraco/JumpPorts/2.1-R1/JumpPorts-2.1-R1.pom
$pomxml = file_get_contents("http://jenkins.roguedraco.net/job/".$project."/".$ciVersion."/net.roguedraco$".$project."/artifact/net.roguedraco/".$project."/".$version."/".$project."-".$version.".pom");
$pom = simplexml_load_string($pomxml);
$bukkitVersion = "Unknown";
// Get Bukkit version
foreach($pom->dependencies->dependency as $depend) {
if($depend->artifactId == 'bukkit') {
$bukkitVersion = $depend->version;
}
}
$projectVersion = $pom->version;
// The image! :O
$img = imagecreatefrompng($ROOT.'/img/latest-release-tpl.png');
// Colours
$white = imagecolorallocate($img, 255, 255, 255);
// Fonts
$font = $ROOT."/fonts/Lithos_Pro.otf";
// Draw on the Project Version
imagefttext($img, 14, 0, 75, 60, $white, $font, $projectVersion);
// Draw on the bukkit Version
imagefttext($img, 10, 0, 75, 75, $white, $font, "(MC ".$bukkitVersion.")");
imagealphablending( $img, false );
imagesavealpha( $img, true );
header('Content-type: image/png');
imagepng($img,$ROOT."/projects/".$project."/static/latestrelease.png");
imagedestroy($img);
break;
}
}
function updateDevImage($project) {
global $ROOT;
$xml = file_get_contents('http://jenkins.roguedraco.net/job/'.$project.'/rssAll');
$xmlobj = simplexml_load_string($xml);
foreach($xmlobj->entry as $item) {
if(stripos($item->title,"stable") || stripos($item->title,"normal")) {
$version = trim(preg_replace('/\s*\([^)]*\)/', '', $item->title));
$vars = explode('#',$version);
$version = trim($vars[1]);
$project = trim($vars[0]);
//$pomxml = file_get_contents("http://jenkins.roguedraco.net/job/".$project."/".$ciVersion."/net.roguedraco$".$project."/artifact/net.roguedraco/".$project."/".$version."/".$project."-".$version.".pom");
//$pom = simplexml_load_string($pomxml);
$url = trim("https://raw.github.com/SpyroDev/".$project."/master/pom.xml");
$pomxml = file_get_contents($url);
$pom = simplexml_load_string($pomxml);
$bukkitVersion = "Unknown";
// Get Bukkit version
foreach($pom->dependencies->dependency as $depend) {
if($depend->artifactId == 'bukkit') {
$bukkitVersion = $depend->version;
}
}
$projectVersion = $pom->version;
// The image! :O
$img = imagecreatefrompng($ROOT.'/img/latest-dev-tpl.png');
// Colours
$white = imagecolorallocate($img, 255, 255, 255);
// Fonts
$font = $ROOT."/fonts/Lithos_Pro.otf";
// Draw on the Dev build number
imagefttext($img, 18, 25, 80, 75, $white, $font, "#".$version);
// Draw on the Project Version
imagefttext($img, 14, 0, 130, 60, $white, $font, $projectVersion);
// Draw on the bukkit Version
imagefttext($img, 10, 0, 130, 75, $white, $font, "(MC ".$bukkitVersion.")");
imagealphablending( $img, false );
imagesavealpha( $img, true );
imagepng($img,$ROOT."/projects/".$project."/static/latestdev.png");
imagedestroy($img);
break;
}
}
}
if ($fh = opendir($ROOT."/projects/")) {
while (false !== ($dir = readdir($fh))) {
if($dir != "." && $dir != "..") {
// Update Release Image
echo "Starting ".$dir.".<br />";
updateReleaseImage($dir);
updateDevImage($dir);
echo "Updated ".$dir.".<hr />";
}
}
closedir($fh);
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment