mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-27 16:00:59 +01:00
52c0ec2700
Summary: This updates the eye logo and removes the formal wordmark "Phabricator" as an image. Instead we'll use the new updated eye logo and plain text for "Phabricator", both of which are more friendly and less industrial. Installs that already use the `header-logo` customization setting will need to rebuild their logo to 80px x 80px. They will then also get to use plain text to whitebox their install as they see fit. Test Plan: Tested new logo at desktop, tablet, and mobile sizes. Set a random instance name, saw new wordmark. Created a really long wordmark of MMMMMMMMMMMM, saw text cut off so UI doesn't break. May need some additional tweaking, but I think we covered the most edge cases here. {F1751791, size=full} Reviewers: epriestley Reviewed By: epriestley Subscribers: edibiase, bjshively, yelirekim, Korvin Maniphest Tasks: T4214, T11096 Differential Revision: https://secure.phabricator.com/D16373
82 lines
2 KiB
PHP
Executable file
82 lines
2 KiB
PHP
Executable file
#!/usr/bin/env php
|
|
<?php
|
|
|
|
require_once dirname(dirname(__FILE__)).'/__init_script__.php';
|
|
|
|
$args = new PhutilArgumentParser($argv);
|
|
$args->setTagline(pht('regenerate CSS sprite sheets'));
|
|
$args->setSynopsis(<<<EOHELP
|
|
**sprites**
|
|
Rebuild CSS sprite sheets.
|
|
|
|
EOHELP
|
|
);
|
|
$args->parseStandardArguments();
|
|
$args->parse(
|
|
array(
|
|
array(
|
|
'name' => 'force',
|
|
'help' => pht('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(
|
|
'tokens' => $generator->buildTokenSheet(),
|
|
'login' => $generator->buildLoginSheet(),
|
|
);
|
|
|
|
list($err) = exec_manual('optipng');
|
|
if ($err) {
|
|
$have_optipng = false;
|
|
echo phutil_console_format(
|
|
"<bg:red> %s </bg> %s\n%s\n",
|
|
pht('WARNING'),
|
|
pht('`%s` not found in PATH.', 'optipng'),
|
|
pht('Sprites will not be optimized! Install `%s`!', 'optipng'));
|
|
} 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 = phutil_json_decode($data);
|
|
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 pht('Optimizing...')."\n";
|
|
phutil_passthru('optipng -o7 -clobber %s', $full_path);
|
|
}
|
|
}
|
|
}
|
|
|
|
echo pht('Done.')."\n";
|