bin/fs_to_db.pl
changeset 43 6070307efd38
parent 31 f77c6719c05c
child 55 8d9daa16ccad
--- a/bin/fs_to_db.pl	Mon Aug 18 23:01:26 2014 +0200
+++ b/bin/fs_to_db.pl	Tue Aug 19 23:51:31 2014 +0200
@@ -14,24 +14,37 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 use Mojo::Base -strict;
+use lib 'lib';
 
-use lib 'lib';
-use CrashTest::Storage::Sql;
 use Mojo::JSON;
 use Mojo::Util qw(decode slurp);
+use Mojo::Loader;
 use File::Basename;
+use Mojolicious;
+use Mojo::Home;
+
+if(scalar @ARGV == 0) {
+    say "Usage: $0 <processed json files>";
+    exit 1;
+}
 
 sub load_config {
-    my ($file) = @_;
-    my $code = decode('UTF-8', slurp $file);
-    return eval($code);
+    my $app = Mojolicious->new;
+    $app->home(Mojo::Home->new("$FindBin::Bin/../"));
+    $app->moniker("CrashTest");
+    return $app->plugin('Config');
 }
 
-my $config = load_config("CrashTest.conf");
+my $config = load_config();
+
+my $loader = Mojo::Loader->new;
 
-eval "require $config->{Storage}->{Type}";
-my $storage = $config->{Storage}->{Type}->new($config->{Storage});
+my $storage_class = $config->{Storage}->{Type};
+if (my $e = $loader->load($storage_class)) {
+    die ref $e ? "Exception: $e" : 'Not found!';
+}
 
+my $storage = $storage_class->new(config => $config->{Storage});
 
 foreach my $arg (@ARGV) {
     my $json = Mojo::JSON->new();