X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Fupdate-gosa;h=b0629f5d944f97bde465c5c6904ccde050df6ea0;hb=f060ad7663edb8441aca1c891d89abeaa3fa260f;hp=be1de84a2d90655e40ba4101bbf61538b427f95e;hpb=0b9deba73d585d90b9dddb0ae997345f290ebc68;p=gosa.git diff --git a/gosa-core/update-gosa b/gosa-core/update-gosa index be1de84a2..b0629f5d9 100755 --- a/gosa-core/update-gosa +++ b/gosa-core/update-gosa @@ -2,7 +2,7 @@ read())) { + if ($entry[0] != '.') { + $themes[]= basename($entry); + } + } + $d->close(); + + return $themes; +} + /* Function to include all class_ files starting at a given directory base */ function get_classes($folder= ".") { @@ -91,7 +105,7 @@ function get_classes($folder= ".") } /* Recurse through all "common" directories */ - if (is_dir($file)){ + if (is_dir($file) && !file_exists("{$file}/excludeFromAutoLoad")){ get_classes($file); continue; } @@ -535,6 +549,8 @@ function rescan_images($path, $theme) $styles= array(); $duplicates= array(); + echo "Updating master image for theme '$theme'..."; + // Check for image magick convert if (!function_exists("imageFilter")){ exec("which convert", $res, $ret); @@ -544,27 +560,26 @@ function rescan_images($path, $theme) } // Scan for images in the given path - echo "Scanning for images"; flush(); foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $fileInfo) { // We're only interested in png files $indexPath= substr($fileInfo->getPathname(), $baseLength + 1); $path= $fileInfo->getPathname(); - if (preg_match('/\.png$/', $indexPath) && !preg_match('/\.svn/', $path) && !preg_match('/themes\/[^\/]+\/img.png$/', $path)){ + if (preg_match('/\.png$/', $indexPath) && !preg_match('/\.svn/', $path) && !preg_match('/themes\/[^\/]+\/images\/img.png$/', $path)){ // Grey image if it is not already one if (preg_match('/grey/', $indexPath)) { echo "!"; - $warnings[]= "Warning: skipped possible grey image $path"; + $warnings[]= "! Warning: skipped possible *grey* image $path"; flush(); continue; } - // Grey image if it is not already one - if (preg_match('/new/', $indexPath)) { + // New image if it is not already one + if (preg_match('/new/', $indexPath) && !preg_match('/new\.png$/', $indexPath)) { echo "!"; - $warnings[]= "Warning: skipped possible grey image $path"; + $warnings[]= "! Warning: skipped possible *new* image $path"; flush(); continue; } @@ -584,7 +599,7 @@ function rescan_images($path, $theme) // Is this image already there? $checksum= md5_file($path); if (in_array($checksum, $checksums)) { - $warnings[]= "Warning: images $indexPath seems to be a duplicate of ".array_search($checksum, $checksums); + $warnings[]= "! Warning: images $indexPath seems to be a duplicate of ".array_search($checksum, $checksums); $duplicates[$indexPath]= array_search($checksum, $checksums); $duplicates[$greyIndexPath]= preg_replace('/\.png$/', '-grey.png', array_search($checksum, $checksums)); continue; @@ -687,7 +702,7 @@ function rescan_images($path, $theme) // Move X cursor to the next position $cursorX+= $imageWidth; - $maxX=($colX > $maxX)?$colX:$maxX; + $maxX=($colX+$imageWidth > $maxX)?$colX+$imageWidth:$maxX; } // Print maximum dimensions @@ -710,7 +725,7 @@ function rescan_images($path, $theme) // Insert source image... - // And eventually convert it to grey before + // Eventually convert it to grey before if (preg_match('/-grey\.png$/', $imagePath)) { if (!function_exists("imageFilter")){ exec("convert ".$paths[$imagePath]." -colorspace Gray /tmp/grey-converted.png"); @@ -727,14 +742,6 @@ function rescan_images($path, $theme) imageCopyResampled($dst, $src, $x, $y, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight); imageDestroy($src); - // Eventually overload with grey part - if (isset($duplicates[$imagePath])){ - $imageHeight= $heights[$duplicates[$imagePath]]; - $imageWidth= $widths[$duplicates[$imagePath]]; - $x= $posX[$duplicates[$imagePath]]; - $y= $posY[$duplicates[$imagePath]]; - } - // Store style $styles[$imagePath]= "background-position:-".$x."px -".$y."px;width:".$imageWidth."px;height:".$imageHeight."px"; @@ -742,7 +749,12 @@ function rescan_images($path, $theme) flush(); } - imagePNG($dst, "html/themes/$theme/img.png", 9); + /* Add duplicates */ + foreach ($duplicates as $imagePath => $realPath) { + $styles[$imagePath]= $styles[$realPath]; + } + + imagePNG($dst, "html/themes/$theme/images/img.png", 9); imageDestroy($dst); // Show warnings images @@ -768,8 +780,10 @@ if ($argc < 2){ rescan_classes(); rescan_i18n(); rescan_guide(); - rescan_images("html", "modern"); - exit (0); + foreach (get_themes() as $theme) { + rescan_images(GOSA_HOME."/html", $theme); + } + exit (0); } switch ($argv[1]){ @@ -799,7 +813,9 @@ switch ($argv[1]){ rescan_classes(); break; case 'rescan-images': - rescan_images("html", "modern"); + foreach (get_themes() as $theme) { + rescan_images("html", $theme); + } break; default: echo "Error: Supplied command not known\n\n";