#!/usr/bin/env perl use strict; use warnings; use FindBin::libs; use DeWeave::Storage; use DeWeave::Crypto; use DeWeave::Collection; use Getopt::Long; use Class::MOP; use Log::Log4perl; Log::Log4perl->easy_init({ level => 'WARN', utf8 => 1, layout => '%c %M %m', }); my ($server,$username,$password,$sync_key,$what); { my $p = Getopt::Long::Parser->new( config => [qw( no_auto_abbrev no_getopt_compat no_gnu_compat require_order no_ignore_case )], ); die unless $p->getoptions( 'h|host=s' => \$server, 'u|user=s' => \$username, 'p|pass|password=s' => \$password, 'k|key|sync-key=s' => \$sync_key, ); } my $storage = DeWeave::Storage->new({ ($server ? (server_uri => $server) : () ), username => $username, password => $password, }); my $crypto = DeWeave::Crypto->new({ storage => $storage, sync_key => $sync_key, }); $what=ucfirst(shift); my $class = "DeWeave::Collection::$what"; Class::MOP::load_class($class); my $foo = $class->fetch($storage,$crypto); if ($what eq 'Bookmarks') { print $foo->as_tree('toolbar'); print $foo->as_tree('menu'); } else { print $_->as_string,"\n" for @{$foo->items}; }