-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompile_template
More file actions
executable file
·115 lines (106 loc) · 2.09 KB
/
compile_template
File metadata and controls
executable file
·115 lines (106 loc) · 2.09 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/usr/bin/env php
<?php
include_once __DIR__ . '/libs/autoload.php';
$parser = new Parser();
$parser->add(
'v', 'verbose',
Parser::OPTION,
$verbose,
'Verbose run'
);
$parser->add(
'c', 'no-color',
Parser::OPTION,
$colorful,
'No color'
);
$parser->add(
'm', 'minify',
Parser::OPTION,
$minify,
'Minify HTML'
);
$parser->add(
'S', 'short',
Parser::OPTION,
$short,
'Short open PHP tag'
);
$parser->add(
'a', 'src-ext',
Parser::VARIABLE,
$src_ext,
'Source ext name (default: tpl)',
'tpl',
'ext'
);
$parser->add(
'b', 'dist-ext',
Parser::VARIABLE,
$dist_ext,
'Dist ext name (default: phtml)',
'phtml',
'ext'
);
$parser->add(
's', 'source',
Parser::VARIABLE,
$src,
'Source path (default: ./templates_src)',
'./templates_src',
'path'
);
$parser->add(
'd', 'dist',
Parser::VARIABLE,
$dist,
'Dist path (default: ./templates)',
'./templates',
'path'
);
$parser->add(
'D', 'display',
Parser::VARIABLE,
$display,
'Display function or method (default: include)',
'include',
'func'
);
$parser->parse();
new logging(!$colorful);
if (!is_dir($src)) {
logging::error('"'.$src.'" is not directory.');
exit(1);
}
if (!is_dir($dist)) {
logging::error('"'.$dist.'" is not directory.');
exit(1);
}
glob2($src, $files, $src_ext);
if (count($files) == 0) {
logging::info('Nothing in "'.$src.'".');
exit(0);
}
foreach ($files as &$path) {
if ($verbose) logging::info('Processing "'.$src.$path.'".');
$content = file_get_contents($src.$path);
$error = 0;
$content = run_all_functions_parser($content,
function ($msg) use ($error) {
$error = 1;
logging::error($msg);
},
$display
);
if ($short) $content = preg_replace("/\<\?php/", '<?', $content);
$save_fn = $dist.substr($path,0,-strlen($src_ext)).$dist_ext;
$save_dir = substr($save_fn, 0, -strlen(basename($save_fn)));
if (!is_dir($save_dir)) {
if ($verbose) logging::info('"'.$save_dir.'" not exist, create.');
mkdir($save_dir);
}
if ($verbose) logging::info('Done. Save to "'.$save_fn.'".');
if ($minify) $content = minify($content);
file_put_contents($save_fn, $content);
}
if ($verbose) logging::info('All done.');