mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-04 15:43:52 +00:00
Update repository generator
This commit is contained in:
parent
f984bd2faf
commit
3c9fe45af5
@ -4,6 +4,7 @@ use warnings FATAL => 'all';
|
||||
# Author: Akkadius
|
||||
# @file: repository-generator.pl
|
||||
# @description: Script used to generate database repositories
|
||||
# @example perl ~/code/utils/scripts/generators/repository-generator.pl ~/server/eqemu_config.json
|
||||
|
||||
use File::Find;
|
||||
use Data::Dumper;
|
||||
@ -12,7 +13,7 @@ use Data::Dumper;
|
||||
# args
|
||||
#############################################
|
||||
my $eqemu_config = $ARGV[0];
|
||||
my $requested_table_to_generate = $ARGV[1];
|
||||
my $requested_table_to_generate = $ARGV[1] ? $ARGV[1] : "";
|
||||
|
||||
my $i = 0;
|
||||
while ($ARGV[$i]) {
|
||||
@ -20,6 +21,11 @@ while ($ARGV[$i]) {
|
||||
$i++;
|
||||
}
|
||||
|
||||
if (!-e $eqemu_config) {
|
||||
print "Error! Config file [$eqemu_config] not found\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
#############################################
|
||||
# database
|
||||
#############################################
|
||||
@ -46,25 +52,30 @@ my $pass = $config->{"server"}{"database"}{"password"};
|
||||
my $dsn = "dbi:mysql:$database_name:$host:3306";
|
||||
my $connect = DBI->connect($dsn, $user, $pass);
|
||||
|
||||
my $table_names_exec = $connect->prepare(
|
||||
"
|
||||
SELECT
|
||||
TABLE_NAME
|
||||
FROM
|
||||
INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE
|
||||
TABLE_SCHEMA = ?
|
||||
GROUP BY
|
||||
TABLE_NAME
|
||||
";
|
||||
|
||||
$table_names_exec->execute($database_name, $table_to_generate);
|
||||
|
||||
my @tables = ();
|
||||
while (my @row = $table_names_exec->fetchrow_array()) {
|
||||
push(@tables, $row[0]);
|
||||
if ($requested_table_to_generate eq "all" || !$requested_table_to_generate) {
|
||||
|
||||
my $table_names_exec = $connect->prepare(
|
||||
"
|
||||
SELECT
|
||||
TABLE_NAME
|
||||
FROM
|
||||
INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE
|
||||
TABLE_SCHEMA = ?
|
||||
GROUP BY
|
||||
TABLE_NAME
|
||||
");
|
||||
|
||||
$table_names_exec->execute($database_name);
|
||||
|
||||
while (my @row = $table_names_exec->fetchrow_array()) {
|
||||
push(@tables, $row[0]);
|
||||
}
|
||||
}
|
||||
|
||||
my $generated_repository_files = "";
|
||||
|
||||
foreach my $table_to_generate (@tables) {
|
||||
my $ex = $connect->prepare(
|
||||
"
|
||||
@ -263,7 +274,12 @@ foreach my $table_to_generate (@tables) {
|
||||
|
||||
print $new_repository;
|
||||
|
||||
my $generated_repository = './common/repositories/' . $table_to_generate . '_repository.h';
|
||||
my $generated_repository = './common/repositories/' . $table_to_generate . '_repository.h';
|
||||
my $cmake_generated_reference = $generated_repository;
|
||||
|
||||
$cmake_generated_reference =~ s/.\/common\///g;
|
||||
|
||||
$generated_repository_files .= $cmake_generated_reference . "\n";
|
||||
|
||||
open(FH, '>', $generated_repository) or die $!;
|
||||
|
||||
@ -272,6 +288,10 @@ foreach my $table_to_generate (@tables) {
|
||||
close(FH);
|
||||
}
|
||||
|
||||
print "\n# Make sure to add generated repositories to common/CMakeLists.txt under the repositories section\n\n";
|
||||
|
||||
print $generated_repository_files . "\n";
|
||||
|
||||
sub trim {
|
||||
my $string = $_[0];
|
||||
$string =~ s/^\s+//;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user