Repository navigation
Expand file tree
/
Copy pathnuclear.cli
More file actions
145 lines (123 loc) · 3.9 KB
/
Copy pathnuclear.cli
File metadata and controls
145 lines (123 loc) · 3.9 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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?php
if(php_sapi_name() !== 'cli'){die();}
echo "
------------------------------------------
\033[32m #NuclearCMS V0.1
\033[33m CLI-console\033[0m
Do you want install nuclear.composer.json?
Type \033[32m 'yes'\033[0m Or press ENTER to abort
:";
///START INSTALL
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
if(trim($line) != 'yes'){ echo "ABORTING!\n"; die();}
fclose($handle);
if(!is_file('nuclear.composer.json'))
echo 'INSTALL:ERROR - create nuclear.composer.json';
echo "
------------------------------------------
\033[33m INSTALL OPTIONS V0.1\033[0m
Type \033[32m '-f': \033[0m -force delete all packages before install
Type \033[32m '-u': \033[0m -update overwrite package if exist
or press ENTER to ignore if exist package
Install:
";
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
if(trim($line) === '-f')
$force =true;
else if(trim($line) === '-u')
$force=false;
else{
$force=false;
$ignore=true;
}
fclose($handle);
echo '.';
function rmdir_recursive($dir) {
foreach(scandir($dir) as $file) {
if ('.' === $file || '..' === $file) continue;
if (is_dir("$dir/$file")) rmdir_recursive("$dir/$file");
else unlink("$dir/$file");
}
rmdir($dir);
}
$nuclear = json_decode(file_get_contents('nuclear.composer.json'));
$repo = $nuclear->repository;
$packages = $nuclear->packages;
$pathcore = $nuclear->corePATH.'/';
if(!is_dir($pathcore)){
mkdir($nuclear->corePATH, 0755, true);
}
$count=0;
foreach($packages as $key=>$package)
{
$count+=1;
echo ".\n";
if(isset($ignore) && is_dir($pathcore.'_'.$key))
{
echo "INSTALL ".$key."...........IGNORE (exist)\n";
}
else{
$current = file_get_contents($repo.$package);
$filename = 'install0'.$count.'.zip';
file_put_contents($filename, $current);
if($force && is_dir($pathcore.'_'.$key))
{
echo "\n\033[33m #FORCE-> delete old vendor-folder.....................";
rmdir_recursive($pathcore.'_'.$key.'/');
echo "\033[32mAPAGADO\033[0m\n";
}
echo "INSTALL ".$key."...........";
$zip = new ZipArchive;
if (true === $zip->open($filename)) {
if($key=='system')
$zip->extractTo($pathcore);
else
$zip->extractTo($pathcore.'_'.$key.'/');
$zip->close();
unlink($filename);
echo "\033[32m OK \033[0m \n";
}
else
echo "\033[31 ERROR \033[0m \n";
}
}
$indexcontent = '<?php
define("INDEXPATH", dirname(__FILE__));';
if($nuclear->publicSELF && !is_dir('public_assets'))
{
$indexcontent .= '$path_to_nuclear = "'.$nuclear->corePATH.'/";';
echo "SELF mode on\n";
mkdir('public_assets', 0755, true);
mkdir('public_assets/css', 0755, true);
mkdir('public_assets/js', 0755, true);
mkdir('public_assets/img', 0755, true);
mkdir('public_assets/libs', 0755, true);
echo "Create FOLDER: public_assets\n";
echo "\nPATHtonuclear: ".$nuclear->corePATH."\n";
}
else if(!is_dir('public_html'))
{
$indexcontent .= '$path_to_nuclear = "../'.$nuclear->corePATH.'/";';
echo "SELF mode off\n";
echo "Create FOLDER: public_html\n";
mkdir('public_html',0777, true);
mkdir('public_html/css', 0755, true);
mkdir('public_html/js', 0755, true);
mkdir('public_html/img', 0755, true);
mkdir('public_html/libs', 0755, true);
echo "\nPATHtonuclear: ../".$nuclear->corePATH."\n";
file_put_contents('index.html', file_get_contents("https://nuclear-source.github.io/files/public.ignore.html"));
}
$indexcontent .='
if(is_file($path_to_nuclear."nuclear.boot.php"))
require_once $path_to_nuclear."nuclear.boot.php";
else
echo "<pre><b>ERROR NUCLEAR.CORE</b><br/> *please run install</pre><b>location:</b><pre> EX: ../nuclear.install.php</br/><b>or CLI-console:</b><pre> $ php nuclear.cli.install</pre><br/>";';
if($nuclear->publicSELF)
file_put_contents('index.php', $indexcontent);
else
file_put_contents('public_html/index.php', $indexcontent);
echo "\n\n\033[32m CLI-INSTALL complete success\n";
exit();