mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-12 00:26:13 +01:00
eaacb4a511
Summary: Ref T5885. See D10276. Currently, ActionHeaders can only have minicons, and we don't use them anywhere and they probably don't make much sense in the product anymore. Instead, allow them to have font icons. Remove minicons, which have no callsites and probably won't in the future. Test Plan: {F190925} - Grepped for `minicons`. - Grepped for `setHeaderIcon()`. Reviewers: btrahan, chad Reviewed By: chad Subscribers: epriestley Maniphest Tasks: T5885 Differential Revision: https://secure.phabricator.com/D10277
89 lines
2.3 KiB
PHP
Executable file
89 lines
2.3 KiB
PHP
Executable file
#!/usr/bin/env php
|
|
<?php
|
|
|
|
require_once dirname(dirname(__FILE__)).'/__init_script__.php';
|
|
|
|
$args = new PhutilArgumentParser($argv);
|
|
$args->setTagline('regenerate CSS sprite sheets');
|
|
$args->setSynopsis(<<<EOHELP
|
|
**sprites**
|
|
Rebuild CSS sprite sheets.
|
|
|
|
EOHELP
|
|
);
|
|
$args->parseStandardArguments();
|
|
$args->parse(
|
|
array(
|
|
array(
|
|
'name' => 'force',
|
|
'help' => 'Force regeneration even if sources have not changed.',
|
|
),
|
|
));
|
|
|
|
$root = dirname(phutil_get_library_root('phabricator'));
|
|
$webroot = $root.'/webroot/rsrc';
|
|
$webroot = Filesystem::readablePath($webroot);
|
|
|
|
$generator = new CeleritySpriteGenerator();
|
|
|
|
$sheets = array(
|
|
'menu' => $generator->buildMenuSheet(),
|
|
'apps' => $generator->buildAppsSheet(),
|
|
'conpherence' => $generator->buildConpherenceSheet(),
|
|
'apps-large' => $generator->buildAppsLargeSheet(),
|
|
'payments' => $generator->buildPaymentsSheet(),
|
|
'tokens' => $generator->buildTokenSheet(),
|
|
'docs' => $generator->buildDocsSheet(),
|
|
'gradient' => $generator->buildGradientSheet(),
|
|
'main-header' => $generator->buildMainHeaderSheet(),
|
|
'login' => $generator->buildLoginSheet(),
|
|
'projects' => $generator->buildProjectsSheet(),
|
|
);
|
|
|
|
list($err) = exec_manual('optipng');
|
|
if ($err) {
|
|
$have_optipng = false;
|
|
echo phutil_console_format(
|
|
"<bg:red> WARNING </bg> `optipng` not found in PATH.\n".
|
|
"Sprites will not be optimized! Install `optipng`!\n");
|
|
} else {
|
|
$have_optipng = true;
|
|
}
|
|
|
|
foreach ($sheets as $name => $sheet) {
|
|
|
|
$sheet->setBasePath($root);
|
|
|
|
$manifest_path = $root.'/resources/sprite/manifest/'.$name.'.json';
|
|
if (!$args->getArg('force')) {
|
|
if (Filesystem::pathExists($manifest_path)) {
|
|
$data = Filesystem::readFile($manifest_path);
|
|
$data = json_decode($data, true);
|
|
if (!$sheet->needsRegeneration($data)) {
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
|
|
$sheet
|
|
->generateCSS($webroot."/css/sprite-{$name}.css")
|
|
->generateManifest($root."/resources/sprite/manifest/{$name}.json");
|
|
|
|
foreach ($sheet->getScales() as $scale) {
|
|
if ($scale == 1) {
|
|
$sheet_name = "sprite-{$name}.png";
|
|
} else {
|
|
$sheet_name = "sprite-{$name}-X{$scale}.png";
|
|
}
|
|
|
|
$full_path = "{$webroot}/image/{$sheet_name}";
|
|
$sheet->generateImage($full_path, $scale);
|
|
|
|
if ($have_optipng) {
|
|
echo "Optimizing...\n";
|
|
phutil_passthru('optipng -o7 -clobber %s', $full_path);
|
|
}
|
|
}
|
|
}
|
|
|
|
echo "Done.\n";
|