From 79ca108f48a66359248065b40121024043192811 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Mon, 14 May 2012 19:04:08 +0200 Subject: [PATCH] convert_to_sqlite.pl: Update to the latest SQL schema + be more Perlish The script behaves a little different as well, but it's more simpler this way. --- tools/convert_to_sqlite.pl | 54 +++++++++++--------------------------- 1 file changed, 15 insertions(+), 39 deletions(-) diff --git a/tools/convert_to_sqlite.pl b/tools/convert_to_sqlite.pl index 9499ca9..0f67cc5 100755 --- a/tools/convert_to_sqlite.pl +++ b/tools/convert_to_sqlite.pl @@ -1,42 +1,18 @@ #!/usr/bin/perl -# use script -# sqlite3 users.db < `tools/convert_to_sqlite.pl /etc/uhub/users.conf` - -my $input = $ARGV[0]; - - -open (FILE, "$input") || die "# Unable to open input file $input: $!"; -my @lines = ; -close (FILE); - -print "CREATE TABLE users(nickname CHAR(64) UNIQUE, password CHAR(64), credentials CHAR(5));\n"; - -foreach my $line (@lines) { - - chomp($line); - - $line =~ s/#.*//g; - - next if ($line =~ /^\s*$/); - - if ($line =~ /^\s*user_(op|admin|super|reg)\s*(.+):(.+)\s*/) - { - my $cred = $1; - my $nick = $2; - my $pass = $3; - - $nick =~ s/'/\\'/g; - $pass =~ s/'/\\'/g; - - print "INSERT INTO users VALUES('" . $nick . "', '" . $pass . "', '" . $cred . "');\n"; - } - else - { - # print "# Warning: Unrecognized line: \"" . $line . "\"\n"; - } -} - - - +# Usage: +# cat /etc/uhub/users.conf | tools/convert_to_sqlite.pl | sqlite3 users.db +print <<_; +CREATE TABLE users( + nickname CHAR(64) UNIQUE, + password CHAR(64), + credentials CHAR(5), + created TIMESTAMP DEFAULT (DATETIME('NOW')), + activity TIMESTAMP DEFAULT (DATETIME('NOW')) +); +_ +sub e($) { (my $v = shift) =~ s/'/\\'/g; $v } +s{^\s*user_(op|admin|super|reg)\s+([^#\s]+):([^#\s]+)}{ + printf "INSERT INTO users (nickname, password, credentials) VALUES('%s','%s','%s');\n", e $2, e $3, $1 +}eg while(<>);