Skip to content

Commit 35a1814

Browse files
author
epriestley
committedFeb 12, 2020
Merge a small amount of remaining "libphutil/" code with Phabricator, break libphutil dependency
Summary: Ref T13395. Moves a small amount of remaining "libphutil/" code into "phabricator/" and stops us from loading "libphutil/". Test Plan: Browsed around; there are likely remaining issues. Maniphest Tasks: T13395 Differential Revision: https://secure.phabricator.com/D20981
1 parent f9b3e33 commit 35a1814

14 files changed

+2831
-14
lines changed
 

‎externals/cldr/cldr_windows_timezones.xml

+769
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/usr/bin/env php
2+
<?php
3+
4+
$root = dirname(dirname(dirname(__FILE__)));
5+
require_once $root.'/scripts/init/init-script.php';
6+
7+
$xml = $root.'/externals/cldr/cldr_windows_timezones.xml';
8+
$xml = Filesystem::readFile($xml);
9+
$xml = new SimpleXMLElement($xml);
10+
11+
$result_map = array();
12+
13+
$ignore = array(
14+
'UTC',
15+
'UTC-11',
16+
'UTC-02',
17+
'UTC-08',
18+
'UTC-09',
19+
'UTC+12',
20+
);
21+
$ignore = array_fuse($ignore);
22+
23+
$zones = $xml->windowsZones->mapTimezones->mapZone;
24+
foreach ($zones as $zone) {
25+
$windows_name = (string)$zone['other'];
26+
$target_name = (string)$zone['type'];
27+
28+
// Ignore the offset-based timezones from the CLDR map, since we handle
29+
// these later.
30+
if (isset($ignore[$windows_name])) {
31+
continue;
32+
}
33+
34+
// We've already seen this timezone so we don't need to add it to the map
35+
// again.
36+
if (isset($result_map[$windows_name])) {
37+
continue;
38+
}
39+
40+
$result_map[$windows_name] = $target_name;
41+
}
42+
43+
asort($result_map);
44+
45+
echo id(new PhutilJSON())
46+
->encodeFormatted($result_map);
+126
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
{
2+
"Egypt Standard Time": "Africa/Cairo",
3+
"Morocco Standard Time": "Africa/Casablanca",
4+
"South Africa Standard Time": "Africa/Johannesburg",
5+
"W. Central Africa Standard Time": "Africa/Lagos",
6+
"E. Africa Standard Time": "Africa/Nairobi",
7+
"Libya Standard Time": "Africa/Tripoli",
8+
"Namibia Standard Time": "Africa/Windhoek",
9+
"Aleutian Standard Time": "America/Adak",
10+
"Alaskan Standard Time": "America/Anchorage",
11+
"Tocantins Standard Time": "America/Araguaina",
12+
"Paraguay Standard Time": "America/Asuncion",
13+
"Bahia Standard Time": "America/Bahia",
14+
"SA Pacific Standard Time": "America/Bogota",
15+
"Argentina Standard Time": "America/Buenos_Aires",
16+
"Eastern Standard Time (Mexico)": "America/Cancun",
17+
"Venezuela Standard Time": "America/Caracas",
18+
"SA Eastern Standard Time": "America/Cayenne",
19+
"Central Standard Time": "America/Chicago",
20+
"Mountain Standard Time (Mexico)": "America/Chihuahua",
21+
"Central Brazilian Standard Time": "America/Cuiaba",
22+
"Mountain Standard Time": "America/Denver",
23+
"Greenland Standard Time": "America/Godthab",
24+
"Turks And Caicos Standard Time": "America/Grand_Turk",
25+
"Central America Standard Time": "America/Guatemala",
26+
"Atlantic Standard Time": "America/Halifax",
27+
"Cuba Standard Time": "America/Havana",
28+
"US Eastern Standard Time": "America/Indianapolis",
29+
"SA Western Standard Time": "America/La_Paz",
30+
"Pacific Standard Time": "America/Los_Angeles",
31+
"Central Standard Time (Mexico)": "America/Mexico_City",
32+
"Saint Pierre Standard Time": "America/Miquelon",
33+
"Montevideo Standard Time": "America/Montevideo",
34+
"Eastern Standard Time": "America/New_York",
35+
"US Mountain Standard Time": "America/Phoenix",
36+
"Haiti Standard Time": "America/Port-au-Prince",
37+
"Canada Central Standard Time": "America/Regina",
38+
"Pacific SA Standard Time": "America/Santiago",
39+
"E. South America Standard Time": "America/Sao_Paulo",
40+
"Newfoundland Standard Time": "America/St_Johns",
41+
"Pacific Standard Time (Mexico)": "America/Tijuana",
42+
"Central Asia Standard Time": "Asia/Almaty",
43+
"Jordan Standard Time": "Asia/Amman",
44+
"Arabic Standard Time": "Asia/Baghdad",
45+
"Azerbaijan Standard Time": "Asia/Baku",
46+
"SE Asia Standard Time": "Asia/Bangkok",
47+
"Altai Standard Time": "Asia/Barnaul",
48+
"Middle East Standard Time": "Asia/Beirut",
49+
"India Standard Time": "Asia/Calcutta",
50+
"Transbaikal Standard Time": "Asia/Chita",
51+
"Sri Lanka Standard Time": "Asia/Colombo",
52+
"Syria Standard Time": "Asia/Damascus",
53+
"Bangladesh Standard Time": "Asia/Dhaka",
54+
"Arabian Standard Time": "Asia/Dubai",
55+
"West Bank Standard Time": "Asia/Hebron",
56+
"W. Mongolia Standard Time": "Asia/Hovd",
57+
"North Asia East Standard Time": "Asia/Irkutsk",
58+
"Israel Standard Time": "Asia/Jerusalem",
59+
"Afghanistan Standard Time": "Asia/Kabul",
60+
"Russia Time Zone 11": "Asia/Kamchatka",
61+
"Pakistan Standard Time": "Asia/Karachi",
62+
"Nepal Standard Time": "Asia/Katmandu",
63+
"North Asia Standard Time": "Asia/Krasnoyarsk",
64+
"Magadan Standard Time": "Asia/Magadan",
65+
"N. Central Asia Standard Time": "Asia/Novosibirsk",
66+
"Omsk Standard Time": "Asia/Omsk",
67+
"North Korea Standard Time": "Asia/Pyongyang",
68+
"Myanmar Standard Time": "Asia/Rangoon",
69+
"Arab Standard Time": "Asia/Riyadh",
70+
"Sakhalin Standard Time": "Asia/Sakhalin",
71+
"Korea Standard Time": "Asia/Seoul",
72+
"China Standard Time": "Asia/Shanghai",
73+
"Singapore Standard Time": "Asia/Singapore",
74+
"Russia Time Zone 10": "Asia/Srednekolymsk",
75+
"Taipei Standard Time": "Asia/Taipei",
76+
"West Asia Standard Time": "Asia/Tashkent",
77+
"Georgian Standard Time": "Asia/Tbilisi",
78+
"Iran Standard Time": "Asia/Tehran",
79+
"Tokyo Standard Time": "Asia/Tokyo",
80+
"Tomsk Standard Time": "Asia/Tomsk",
81+
"Ulaanbaatar Standard Time": "Asia/Ulaanbaatar",
82+
"Vladivostok Standard Time": "Asia/Vladivostok",
83+
"Yakutsk Standard Time": "Asia/Yakutsk",
84+
"Ekaterinburg Standard Time": "Asia/Yekaterinburg",
85+
"Caucasus Standard Time": "Asia/Yerevan",
86+
"Azores Standard Time": "Atlantic/Azores",
87+
"Cape Verde Standard Time": "Atlantic/Cape_Verde",
88+
"Greenwich Standard Time": "Atlantic/Reykjavik",
89+
"Cen. Australia Standard Time": "Australia/Adelaide",
90+
"E. Australia Standard Time": "Australia/Brisbane",
91+
"AUS Central Standard Time": "Australia/Darwin",
92+
"Aus Central W. Standard Time": "Australia/Eucla",
93+
"Tasmania Standard Time": "Australia/Hobart",
94+
"Lord Howe Standard Time": "Australia/Lord_Howe",
95+
"W. Australia Standard Time": "Australia/Perth",
96+
"AUS Eastern Standard Time": "Australia/Sydney",
97+
"Dateline Standard Time": "Etc/GMT+12",
98+
"Astrakhan Standard Time": "Europe/Astrakhan",
99+
"W. Europe Standard Time": "Europe/Berlin",
100+
"GTB Standard Time": "Europe/Bucharest",
101+
"Central Europe Standard Time": "Europe/Budapest",
102+
"E. Europe Standard Time": "Europe/Chisinau",
103+
"Turkey Standard Time": "Europe/Istanbul",
104+
"Kaliningrad Standard Time": "Europe/Kaliningrad",
105+
"FLE Standard Time": "Europe/Kiev",
106+
"GMT Standard Time": "Europe/London",
107+
"Belarus Standard Time": "Europe/Minsk",
108+
"Russian Standard Time": "Europe/Moscow",
109+
"Romance Standard Time": "Europe/Paris",
110+
"Russia Time Zone 3": "Europe/Samara",
111+
"Central European Standard Time": "Europe/Warsaw",
112+
"Mauritius Standard Time": "Indian/Mauritius",
113+
"Samoa Standard Time": "Pacific/Apia",
114+
"New Zealand Standard Time": "Pacific/Auckland",
115+
"Bougainville Standard Time": "Pacific/Bougainville",
116+
"Chatham Islands Standard Time": "Pacific/Chatham",
117+
"Easter Island Standard Time": "Pacific/Easter",
118+
"Fiji Standard Time": "Pacific/Fiji",
119+
"Central Pacific Standard Time": "Pacific/Guadalcanal",
120+
"Hawaiian Standard Time": "Pacific/Honolulu",
121+
"Line Islands Standard Time": "Pacific/Kiritimati",
122+
"Marquesas Standard Time": "Pacific/Marquesas",
123+
"Norfolk Standard Time": "Pacific/Norfolk",
124+
"West Pacific Standard Time": "Pacific/Port_Moresby",
125+
"Tonga Standard Time": "Pacific/Tongatapu"
126+
}

‎scripts/daemon/exec/exec_daemon.php

+131
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
#!/usr/bin/env php
2+
<?php
3+
4+
if (function_exists('pcntl_async_signals')) {
5+
pcntl_async_signals(true);
6+
} else {
7+
declare(ticks = 1);
8+
}
9+
10+
require_once dirname(__FILE__).'/../../__init_script__.php';
11+
12+
if (!posix_isatty(STDOUT)) {
13+
$sid = posix_setsid();
14+
if ($sid <= 0) {
15+
throw new Exception(pht('Failed to create new process session!'));
16+
}
17+
}
18+
19+
$args = new PhutilArgumentParser($argv);
20+
$args->setTagline(pht('daemon executor'));
21+
$args->setSynopsis(<<<EOHELP
22+
**exec_daemon.php** [__options__] __daemon__ ...
23+
Run an instance of __daemon__.
24+
EOHELP
25+
);
26+
$args->parse(
27+
array(
28+
array(
29+
'name' => 'trace',
30+
'help' => pht('Enable debug tracing.'),
31+
),
32+
array(
33+
'name' => 'trace-memory',
34+
'help' => pht('Enable debug memory tracing.'),
35+
),
36+
array(
37+
'name' => 'verbose',
38+
'help' => pht('Enable verbose activity logging.'),
39+
),
40+
array(
41+
'name' => 'label',
42+
'short' => 'l',
43+
'param' => 'label',
44+
'help' => pht(
45+
'Optional process label. Makes "%s" nicer, no behavioral effects.',
46+
'ps'),
47+
),
48+
array(
49+
'name' => 'daemon',
50+
'wildcard' => true,
51+
),
52+
));
53+
54+
$trace_memory = $args->getArg('trace-memory');
55+
$trace_mode = $args->getArg('trace') || $trace_memory;
56+
$verbose = $args->getArg('verbose');
57+
58+
if (function_exists('posix_isatty') && posix_isatty(STDIN)) {
59+
fprintf(STDERR, pht('Reading daemon configuration from stdin...')."\n");
60+
}
61+
$config = @file_get_contents('php://stdin');
62+
$config = id(new PhutilJSONParser())->parse($config);
63+
64+
PhutilTypeSpec::checkMap(
65+
$config,
66+
array(
67+
'log' => 'optional string|null',
68+
'argv' => 'optional list<wild>',
69+
'load' => 'optional list<string>',
70+
'down' => 'optional int',
71+
));
72+
73+
$log = idx($config, 'log');
74+
75+
if ($log) {
76+
ini_set('error_log', $log);
77+
PhutilErrorHandler::setErrorListener(array('PhutilDaemon', 'errorListener'));
78+
}
79+
80+
$load = idx($config, 'load', array());
81+
foreach ($load as $library) {
82+
$library = Filesystem::resolvePath($library);
83+
phutil_load_library($library);
84+
}
85+
86+
PhutilErrorHandler::initialize();
87+
88+
$daemon = $args->getArg('daemon');
89+
if (!$daemon) {
90+
throw new PhutilArgumentUsageException(
91+
pht('Specify which class of daemon to start.'));
92+
} else if (count($daemon) > 1) {
93+
throw new PhutilArgumentUsageException(
94+
pht('Specify exactly one daemon to start.'));
95+
} else {
96+
$daemon = head($daemon);
97+
if (!class_exists($daemon)) {
98+
throw new PhutilArgumentUsageException(
99+
pht(
100+
'No class "%s" exists in any known library.',
101+
$daemon));
102+
} else if (!is_subclass_of($daemon, 'PhutilDaemon')) {
103+
throw new PhutilArgumentUsageException(
104+
pht(
105+
'Class "%s" is not a subclass of "%s".',
106+
$daemon,
107+
'PhutilDaemon'));
108+
}
109+
}
110+
111+
$argv = idx($config, 'argv', array());
112+
$daemon = newv($daemon, array($argv));
113+
114+
if ($trace_mode) {
115+
$daemon->setTraceMode();
116+
}
117+
118+
if ($trace_memory) {
119+
$daemon->setTraceMemory();
120+
}
121+
122+
if ($verbose) {
123+
$daemon->setVerbose(true);
124+
}
125+
126+
$down_duration = idx($config, 'down');
127+
if ($down_duration) {
128+
$daemon->setScaledownDuration($down_duration);
129+
}
130+
131+
$daemon->execute();

‎scripts/init/lib.php

+8-4
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,14 @@ function init_phabricator_script(array $options) {
88
ini_set(
99
'include_path',
1010
$include_path.PATH_SEPARATOR.dirname(__FILE__).'/../../../');
11-
@include_once 'libphutil/scripts/__init_script__.php';
12-
if (!@constant('__LIBPHUTIL__')) {
13-
echo "ERROR: Unable to load libphutil. Update your PHP 'include_path' to ".
14-
"include the parent directory of libphutil/.\n";
11+
12+
$ok = @include_once 'arcanist/scripts/init/init-script.php';
13+
if (!$ok) {
14+
echo
15+
'FATAL ERROR: Unable to load the "Arcanist" library. '.
16+
'Put "arcanist/" next to "phabricator/" on disk.';
17+
echo "\n";
18+
1519
exit(1);
1620
}
1721

‎src/__phutil_library_map__.php

+10
Original file line numberDiff line numberDiff line change
@@ -5623,6 +5623,11 @@
56235623
'PhutilCodeSnippetContextFreeGrammar' => 'infrastructure/lipsum/code/PhutilCodeSnippetContextFreeGrammar.php',
56245624
'PhutilConsoleSyntaxHighlighter' => 'infrastructure/markup/syntax/highlighter/PhutilConsoleSyntaxHighlighter.php',
56255625
'PhutilContextFreeGrammar' => 'infrastructure/lipsum/PhutilContextFreeGrammar.php',
5626+
'PhutilDaemon' => 'infrastructure/daemon/PhutilDaemon.php',
5627+
'PhutilDaemonHandle' => 'infrastructure/daemon/PhutilDaemonHandle.php',
5628+
'PhutilDaemonOverseer' => 'infrastructure/daemon/PhutilDaemonOverseer.php',
5629+
'PhutilDaemonOverseerModule' => 'infrastructure/daemon/PhutilDaemonOverseerModule.php',
5630+
'PhutilDaemonPool' => 'infrastructure/daemon/PhutilDaemonPool.php',
56265631
'PhutilDefaultSyntaxHighlighter' => 'infrastructure/markup/syntax/highlighter/PhutilDefaultSyntaxHighlighter.php',
56275632
'PhutilDefaultSyntaxHighlighterEngine' => 'infrastructure/markup/syntax/engine/PhutilDefaultSyntaxHighlighterEngine.php',
56285633
'PhutilDefaultSyntaxHighlighterEnginePygmentsFuture' => 'infrastructure/markup/syntax/highlighter/pygments/PhutilDefaultSyntaxHighlighterEnginePygmentsFuture.php',
@@ -12522,6 +12527,11 @@
1252212527
'PhutilCodeSnippetContextFreeGrammar' => 'PhutilContextFreeGrammar',
1252312528
'PhutilConsoleSyntaxHighlighter' => 'Phobject',
1252412529
'PhutilContextFreeGrammar' => 'Phobject',
12530+
'PhutilDaemon' => 'Phobject',
12531+
'PhutilDaemonHandle' => 'Phobject',
12532+
'PhutilDaemonOverseer' => 'Phobject',
12533+
'PhutilDaemonOverseerModule' => 'Phobject',
12534+
'PhutilDaemonPool' => 'Phobject',
1252512535
'PhutilDefaultSyntaxHighlighter' => 'Phobject',
1252612536
'PhutilDefaultSyntaxHighlighterEngine' => 'PhutilSyntaxHighlighterEngine',
1252712537
'PhutilDefaultSyntaxHighlighterEnginePygmentsFuture' => 'FutureProxy',

‎src/applications/calendar/parser/ics/PhutilICSParser.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -849,8 +849,8 @@ private function guessTimezone($tzid) {
849849
);
850850

851851
// Load the map of Windows timezones.
852-
$root_path = dirname(phutil_get_library_root('phutil'));
853-
$windows_path = $root_path.'/resources/timezones/windows_timezones.json';
852+
$root_path = dirname(phutil_get_library_root('phabricator'));
853+
$windows_path = $root_path.'/resources/timezones/windows-timezones.json';
854854
$windows_data = Filesystem::readFile($windows_path);
855855
$windows_zones = phutil_json_decode($windows_data);
856856

0 commit comments

Comments
 (0)
Failed to load comments.