39 lines
804 B
Perl
39 lines
804 B
Perl
#!/usr/bin/perl -w
|
|
|
|
package esmith;
|
|
|
|
use strict;
|
|
use Errno;
|
|
use esmith::DB::db;
|
|
use IO::File;
|
|
use English;
|
|
use JSON;
|
|
|
|
my %ENV;
|
|
|
|
my @d = `bash -c 'source $ARGV[0] && echo db=\${db:-configuration}'`;
|
|
for my $item (@d) {
|
|
chomp $item;
|
|
print "ITEM: $item \n";
|
|
my ( $k, $v ) = split /=/, $item, 2;
|
|
$v =~ s/^(['"])(.*)\1/$2/; #' fix highlighter
|
|
$v =~ s/\$([a-zA-Z]\w*)/$ENV{$1}/g;
|
|
$v =~ s/`(.*?)`/`$1`/ge; #dangerous
|
|
$ENV{$k} = $v;
|
|
}
|
|
|
|
my $db = esmith::DB::db->open( $ENV{'db'} ) || die("{}");
|
|
my @items = $db->get_all();
|
|
my %out;
|
|
foreach my $item (@items) {
|
|
my %props = $item->props();
|
|
if ( scalar( keys %props ) <= 1 ) {
|
|
$out{ $item->key } = $props{'type'};
|
|
}
|
|
else {
|
|
$out{ $item->key } = { $item->props() };
|
|
}
|
|
}
|
|
|
|
print encode_json \%out;
|