-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathcli.php
99 lines (78 loc) · 3.53 KB
/
cli.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
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
<?php
if (PHP_SAPI !== 'cli') {
die("Этот скрипт можно запустить только из командной строки.");
}
require_once "./app.php";
$phpCheck = MoxiHelp::checkPHP();
if(!$phpCheck["success"]) {
die("\n{$phpCheck["message"]}\n\n");
}
class MoxiCLI extends MoxiPack
{
public function __construct($login, $password)
{
parent::__construct($login, $password);
echo "\n------\n\n";
$checkModx = $this->checkModx();
if(!$checkModx["success"]) {
$this->log($checkModx["message"], "error");
die;
}
if ($this->isAdmin !== true) {
$this->log("Вы ввели неверный логин или пароль, либо пользователь $login не является администратором", "error");
die;
}
$title = MoxiHelp::prompt("Введите название сайта: ");
$this->setSiteName($title);
$newNameManager = MoxiHelp::prompt("Введите название пути панели управления: ");
$this->setManagerName($newNameManager);
$stepsNames = join(", ", array_column($this->steps, "name"));
$this->log("Будут запущены следующие процессы: $stepsNames", "warning");
$isInit = MoxiHelp::prompt("Вы уверены что хотите продолжить?[Y/n]: ");
if(strtolower($isInit) === "y" || $isInit === "") {
$this->init();
$this->log("\nНастройка завершена!\n");
} else {
$this->clearCache();
$this->log("Настройка отменена!");
}
$isRemoveApp = MoxiHelp::prompt("Удалить папку moxi?[Y/n]: ");
if(strtolower($isRemoveApp) === "y" || $isRemoveApp === "") {
$this->removeApp();
} else {
$this->log("Moxi не удалён!");
$this->log("Не рекомендуется оставлять пакет настройки Moxi в открытом доступе на сайте после установке. Удалите папке moxi самостоятельно!", "warning");
}
}
protected function init()
{
foreach ($this->steps as $step) {
echo "\n=== {$step['desc']}\n";
$this->call($step["name"]);
echo "===\n";
}
}
protected function log($message, $type = "info")
{
$types = [
"info" => [ "color" => "blue", "desc" => "" ],
"error" => [ "color" => "red", "desc" => "ОШИБКА!!!" ],
"warning" => [ "color" => "yellow", "desc" => "ВНИМАНИЕ!!!" ],
];
$typeNow = $types[$type] ?: $types["info"];
echo MoxiHelp::colorize("==={$typeNow['desc']}===\n$message\n======\n", $typeNow["color"]);
}
}
echo MoxiHelp::colorize("
┌────────────────────────────────┐
│ ███╗░░░███╗░█████╗░██╗░░██╗██╗ │
│ ████╗░████║██╔══██╗╚██╗██╔╝██║ │
│ ██╔████╔██║██║░░██║░╚███╔╝░██║ │
│ ██║╚██╔╝██║██║░░██║░██╔██╗░██║ │
│ ██║░╚═╝░██║╚█████╔╝██╔╝╚██╗██║ │
│ ╚═╝░░░░░╚═╝░╚════╝░╚═╝░░╚═╝╚═╝ │
└────────────────────────────────┘
", "light_green");
$login = MoxiHelp::prompt("Введите логин: ");
$password = MoxiHelp::prompt("Введите пароль: ", true);
new MoxiCLI($login, $password);