-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.php
More file actions
84 lines (71 loc) · 1.87 KB
/
app.php
File metadata and controls
84 lines (71 loc) · 1.87 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
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require "src/kernel.php";
$commands = [
'insert' => '{database} {table} {key1=value1,key2=value2,...}',
'checkTable' => '{database} {table}',
'createTable' => '{database} {table}',
'connect' => '{database}',
'createDatabase' => '{database}',
'help' => ''
];
if ($argv[1] === 'help') {
colorLog("Available commands:", 'i');
foreach ($commands as $command => $args) {
colorLog(" $command: ", 'i').
colorLog(" $args", 's');
}
exit(0);
}
if (!isset($commands[$argv[1]])) {
colorLog("Usage: php app.php <command> <database> [table]", 's');
colorLog("Invalid command", 'e');
exit(1);
}
if ($argc < 3) {
echo "Invalid arguments\n";
exit(1);
}
$command = $argv[1];
$database = $argv[2];
$table = $argv[3] ?? null;
if (isset($argv[4])) {
foreach (explode(',', $argv[4]) as $arg) {
[$key, $value] = explode('=', $arg);
$data[$key] = $value;
}
} else {
$data = [];
}
eval("\$command = $command(\$database, \$table, \$data);");
function insert(string $database, string $table, array $data): void
{
$db = new Database($database);
$db->table($table)->query()->insert($data);
}
function checkTable(string $database, string $table): bool
{
$db = new Database($database);
return $db->table($table)->checkTable();
}
function createTable(string $database, string $table): void
{
$db = new Database($database);
$db->table($table)->createTable();
}
function connect(string $database): Database
{
$db = new Database($database);
if ($db->check()) {
colorLog("Connected to $database", 's');
} else {
colorLog("Database $database not found", 'e');
}
return $db;
}
function createDatabase(string $database): Database
{
return Database::create($database);
}