#!/usr/bin/perl -w
use strict;
binmode STDOUT, ":utf8";

use FindBin;
use lib ("$FindBin::Bin/../lib", "$FindBin::Bin/../extlib");

my %opts;
use Getopt::Long;
GetOptions("type=s", \my($type),
	   "id=i", \my($id),
           "cols=s",  \my($cols),
	   "config=s", \my($cfg));
$type or die "usage: $0 --type=<type> [--id=<id>] [--cols=<columns>] [--config=<cfg>]";

use MT;
my $mt = MT->new(defined $cfg ? (Config => $cfg) : ()) or die MT->errstr;
my $class = MT->model($type);

die "Error loading '$type': $@" if $@;

my $iter = $class->load_iter($id ? { id => $id } : ()) or
    die "Load failed: " . $class->errstr;
$cols = $cols ? [ split /\s*,\s*/, $cols ] : $class->column_names;
print join(':', @$cols), "\n";
while (my $obj = $iter->()) {
    print join(':', map defined $obj->column($_) ? $obj->column($_) : '', @$cols), "\n";
}
