-
Notifications
You must be signed in to change notification settings - Fork 0
/
Maple.php
43 lines (32 loc) ยท 1.41 KB
/
Maple.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env php
<?php
// ๅฎ็พฉๆๅ
date_default_timezone_set('Asia/Taipei');
// ๅฎ็พฉๅธธๆธ
define('MAPLE_CMD', true);
define('DIR', realpath(getcwd()) . DIRECTORY_SEPARATOR);
// ๅฎ็พฉ่จๆ็จ Error Handler
function failure($errs) {
is_array($errs) || $errs = [$errs];
print(QUIET ? json_encode([
'status' => false,
'message' => array_map(function($err) { return $err instanceof Error ? $err->getMessage() : $err; }, $errs)
]) : ("\nโโโโโโโโโโโโโโโโโโโโโโ\n โปโปโปโปโป ็ผ็้ฏ่ชค โปโปโปโปโป\nโโโโโโโโโโโโโโโโโโโโโโ\n"
. implode("\n", array_map(function($err) { return ' โ ' . ($err instanceof Error ? $err->getMessage() : $err); }, $errs))
. ($errs ? "\n\n\n" : "\n\n")));
exit(1);
}
// ่ผๅ
ฅ Entry
$entry = @file_get_contents($path = DIR . 'System' . DIRECTORY_SEPARATOR . 'Entry.php');
$entry && preg_match_all('/define\s*\((["\'])(?P<kv>(?>[^"\'\\\]++|\\\.|(?!\1)["\'])*)\1?/', $entry, $entry) && $entry['kv'] && in_array('MAPLE', $entry['kv']) || failure('้ไธๆฏ Maple 8 ๆกๆถ็ๅฐๆกๅง๏ผ');
include_once $path;
// ๅๅพๅๆธ
$file = array_shift($argv);
$quiet = strtolower(array_shift($argv));
define('QUIET', $quiet == 'quiet');
$feature = QUIET ? strtolower(array_shift($argv)) : $quiet;
// ๅท่ก
Load::systemCmd('Main');
\CMD\Main::start($feature, $argv);
// ็ตๆ
exit(0);