11 my $op = shift(@ARGV) // "help";
22 } elsif ($op eq "list") {
23 @ARGV == 0 or Odin
::fail
"usage: list";
24 my $db = Odin
::open_db
;
25 for my $r (@
{$db->selectall_arrayref
26 ("SELECT " . Odin
::sql_timestamp
($db, "stamp") . ", tag, url
27 FROM odin_shorturl WHERE owner = ?
28 ORDER BY stamp", undef, $Odin::WHO
)}) {
29 my ($stamp, $tag, $url) = @
$r;
30 my $t = strftime
"%Y-%m-%d %H:%M:%S %z", localtime $stamp;
31 printf "%-25s %-12s %s\n", $t, $tag, $url;
33 } elsif ($op eq "new") {
34 @ARGV == 1 or Odin
::fail
"usage: new URL";
36 my $tag = Odin
::new_shorturl
$url;
37 print "$Odin::SHORTURL/$tag\n";
38 } elsif ($op eq "get") {
39 @ARGV >= 0 or Odin
::fail
"usage: get TAG ...";
40 if (@ARGV == 1) { print Odin
::get_shorturl
$ARGV[0], "\n"; }
43 { printf "%-12s %s\n", $tag, Odin
::get_shorturl
$tag; }
45 } elsif ($op eq "del") {
46 @ARGV >= 0 or Odin
::fail
"usage: del TAG ...";
47 Odin
::delete_shorturl
@ARGV;
49 Odin
::fail
"unknown operation `$op'";