155 lines
4.3 KiB
PHP
155 lines
4.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Vvveb
|
|
*
|
|
* Copyright (C) 2022 Ziadin Givan
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
namespace Vvveb;
|
|
|
|
$msg = <<<MSG
|
|
Usage cli.php [app] [parameters...]
|
|
where app can be admin, app or install and parameters are a list of name=value that will be used as Http GET/POST parameters when calling controllers.
|
|
You can call any module and action by passing the corresponding module and action parameters.
|
|
Note:For admin app super admin is used as user.
|
|
|
|
Examples:
|
|
|
|
#disable plugin
|
|
php cli.php admin module=plugin/plugins action=deactivate plugin=markdown-import
|
|
|
|
#activate plugin
|
|
php cli.php admin module=plugin/plugins action=activate plugin=markdown-import
|
|
|
|
#clear cache
|
|
php cli.php admin module=tools/cache action=delete
|
|
|
|
#delete post
|
|
php cli.php admin module=content/posts action=delete post_id=1
|
|
|
|
#fresh install MySQL
|
|
php cli.php install host=127.0.0.1 user=root password= database=vvveb admin[email]=admin@vvveb.com admin[username]=admin admin[password]=admin
|
|
|
|
#fresh install PgSQL
|
|
php cli.php install engine=pgsql host=127.0.0.1 user=postgres password= database=vvveb admin[email]=admin@vvveb.com admin[username]=admin admin[password]=admin
|
|
|
|
#fresh install SQLite
|
|
php cli.php install engine=sqlite admin[email]=admin@vvveb.com admin[username]=admin admin[password]=admin
|
|
|
|
#import markdown posts from folder /docs/user into site with id 5
|
|
php cli.php admin module=plugins/markdown-import/settings action=import site_id=5 settings[path]=/docs/user
|
|
|
|
#import markdown posts from folder /docs/developer into site with id 6
|
|
php cli.php admin module=plugins/markdown-import/settings action=import site_id=6 settings[path]=/docs/developer
|
|
|
|
#import content
|
|
php cli.php admin module=tools/import action=upload file[]=pages.xml file[]=menus.xml
|
|
|
|
php cli.php admin module=tools/import action=upload file[]='/home/www/vvveb/pages.xml' file[]='/home/www/vvveb/landing-menu-export.xml' file[]='/home/www/vvveb/plugins.xml' file[]='/home/www/vvveb/themes.xml' file[]='/home/www/vvveb/plugins-posts.xml'
|
|
|
|
# run cron jobs
|
|
php cli.php app module=cron
|
|
|
|
# simulate a page request and get page json as output
|
|
php cli.php app request_uri=/hello-world
|
|
\n
|
|
MSG;
|
|
|
|
namespace Vvveb;
|
|
|
|
define('V_VERSION', '0.0.1');
|
|
|
|
function is_installed() {
|
|
return file_exists(DIR_ROOT . 'config' . DS . 'db.php');
|
|
}
|
|
|
|
function detectSubDir() {
|
|
return false;
|
|
}
|
|
|
|
$params = implode('&', array_slice($argv, 2));
|
|
parse_str($params, $_GET);
|
|
parse_str($params, $_POST);
|
|
|
|
//simulate a page request
|
|
if (isset($_GET['request_uri'])) {
|
|
$_SERVER['REQUEST_URI'] = $_GET['request_uri'];
|
|
} else {
|
|
define('CLI',true);
|
|
}
|
|
|
|
$app = 'app';
|
|
$appDir = '';
|
|
|
|
if (isset($argv[1])) {
|
|
switch ($argv[1]) {
|
|
case 'install':
|
|
$app = 'install';
|
|
$appDir = 'install';
|
|
|
|
break;
|
|
|
|
case 'admin':
|
|
$app = 'admin';
|
|
$appDir = 'admin';
|
|
|
|
break;
|
|
}
|
|
} else {
|
|
die($msg);
|
|
}
|
|
|
|
define('DS', DIRECTORY_SEPARATOR);
|
|
define('DIR_ROOT', __DIR__ . DS);
|
|
define('DIR_SYSTEM', DIR_ROOT . 'system' . DS);
|
|
define('PUBLIC_PATH', DS . 'public' . DS);
|
|
defined('PAGE_CACHE_DIR') || define('PAGE_CACHE_DIR', 'page-cache' . DS);
|
|
define('PUBLIC_THEME_PATH', DS . 'public' . DS);
|
|
|
|
define('APP', $app);
|
|
|
|
//common constants
|
|
include DIR_ROOT . 'env.php';
|
|
|
|
include DIR_SYSTEM . '/core/startup.php';
|
|
|
|
function superAdminLogin() {
|
|
$login =
|
|
[
|
|
'admin_id' => 1,
|
|
'username' => 'admin',
|
|
'email' => 'cli@vvveb',
|
|
'url' => '',
|
|
'registered' => '',
|
|
'token' => '',
|
|
'status' => 1,
|
|
'display_name' => 'Super Admin',
|
|
'role_id' => 1,
|
|
'permissions' => ['allow' => ['*'], 'deny' => ['']],
|
|
];
|
|
|
|
return session(['admin' => $login]);
|
|
}
|
|
|
|
if ($app == 'admin') {
|
|
superAdminLogin();
|
|
}
|
|
|
|
System\Core\Response::getInstance()->setType('json');
|
|
System\Core\start();
|