| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- $_SERVER['DOCUMENT_ROOT'] = dirname(__DIR__);
- require $_SERVER['DOCUMENT_ROOT'] . '/app/libs/uoj-lib.php';
- // TODO: more beautiful argv parser
- $handlers = [
- 'upgrade:up' => function ($name) {
- if (func_num_args() != 1) {
- die("php cli.php upgrade:up <name>\n");
- }
- Upgrader::transaction(function() use ($name) {
- Upgrader::up($name);
- });
- die("finished!\n");
- },
- 'upgrade:down' => function ($name) {
- if (func_num_args() != 1) {
- die("php cli.php upgrade:down <name>\n");
- }
- Upgrader::transaction(function() use ($name) {
- Upgrader::down($name);
- });
- die("finished!\n");
- },
- 'upgrade:refresh' => function ($name) {
- if (func_num_args() != 1) {
- die("php cli.php upgrade:refresh <name>\n");
- }
- Upgrader::transaction(function() use ($name) {
- Upgrader::refresh($name);
- });
- die("finished!\n");
- },
- 'upgrade:remove' => function ($name) {
- if (func_num_args() != 1) {
- die("php cli.php upgrade:remove <name>\n");
- }
- Upgrader::transaction(function() use ($name) {
- Upgrader::remove($name);
- });
- die("finished!\n");
- },
- 'upgrade:latest' => function () {
- if (func_num_args() != 0) {
- die("php cli.php upgrade:latest\n");
- }
- Upgrader::transaction(function() {
- Upgrader::upgradeToLatest();
- });
- die("finished!\n");
- },
- 'upgrade:remove-all' => function () {
- if (func_num_args() != 0) {
- die("php cli.php upgrade:remove-all\n");
- }
- Upgrader::transaction(function() {
- Upgrader::removeAll();
- });
- die("finished!\n");
- },
- 'help' => 'showHelp'
- ];
- function showHelp() {
- global $handlers;
- echo "UOJ Command-Line Interface\n";
- echo "php cli.php <task-name> params1 params2 ...\n";
- echo "\n";
- echo "The following tasks are available:\n";
- foreach ($handlers as $cmd => $handler) {
- echo "\t$cmd\n";
- }
- }
- if (count($argv) <= 1) {
- showHelp();
- die();
- }
- if (!isset($handlers[$argv[1]])) {
- echo "Invalid parameters.\n";
- showHelp();
- die();
- }
- call_user_func_array($handlers[$argv[1]], array_slice($argv, 2));
|