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 tag, stamp, url
27 FROM odin_shorturl WHERE owner = ?
28 ORDER BY stamp", undef, $Odin::WHO)}) {
29 my ($tag, $stamp, $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'";