libreschool-client-manager/root/etc/ansible/library/e-smith

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;