#!/usr/bin/perl -w

# Run like this:
#	MAconfigdir=/usr/local/src/git/mkadmin/config/ussadmin MAloglevel=63 /usr/local/src/git/mkadmin/bin/mkatest -f mike
#	SERVER_NAME=newmk2.indexdata.com MAconfigpath=/usr/local/src/git/mk2-config-newdemo/admin/mkadmin:/usr/local/src/git/mkadmin/config/include MAloglevel=7999 perl -I /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level /usr/local/src/git/mkadmin/bin/mkatest -f mike

use strict;
use warnings;
use Getopt::Std;

use lib "/usr/local/src/git/mkadmin/lib";

BEGIN {
    $ENV{MAloglevel}  ||= "0xffff";
    $ENV{MAconfigdir} ||= "/usr/local/src/git/mkadmin/config/include";
    require Masterkey::Admin;
}

my %opts = (
    "t", "searchable",
);

if (!getopts('t:u:f:l:', \%opts) || @ARGV != 0) {
    print STDERR "\
Usage: $0 [options]
	-t <tab>	Specify tab-name [", $opts{t}, "]
	-u <realm> or -u <realm>/<query>
			Construct and display URL corresponding to arg.
	-f <r>/<r/q>	Fetch Torus records from from URL, as with -u.
	-l <layer>	When rendering records, show fields from <layer>
";
    exit 1;
}

my $admin = new Masterkey::Admin($opts{t});
my $arg = $opts{u} || $opts{f};
exit if !defined $arg; # Just checking that the code compiles

my($realm, $query) = split /\s*\/\s*/, $arg;
$admin->log(Masterkey::Admin::LogLevel::CHITCHAT,
	    "$0: realm=", d($realm), ", query=", d($query));

if ($opts{u}) {
    print $admin->torus()->recordsURI($realm, $query);
} else {
    my $rs = $admin->torus()->records($realm, $query);
    my $recs = $rs->records();
    my $n = @$recs;
    print "Found $n records\n";
    foreach my $i (1..$n) {
	my $rec = $recs->[$i-1];
	print "=== record $i ($rec) ===\n", $rec->render($opts{l});
    }
}

sub d {
    my($s) = @_;
    return "(undefined)" if !defined $s;
    $s =~ s/['']/''/g;
    return "'$s'";
}
