Commit | Line | Data |
---|---|---|
be24e9af MW |
1 | #! /usr/bin/perl |
2 | ||
3 | use lib "lib"; | |
4 | ||
5 | use Odin; | |
6 | use DBI; | |
be24e9af MW |
7 | |
8 | Odin::cmdline_who; | |
9 | ||
10 | my $op = shift(@ARGV) // "help"; | |
11 | if ($op eq "help") { | |
12 | print <<EOF; | |
13 | Commands available: | |
14 | ||
15 | del TAG ... | |
16 | get TAG ... | |
17 | help | |
18 | list | |
19 | new URL | |
20 | EOF | |
21 | } elsif ($op eq "list") { | |
22 | @ARGV == 0 or Odin::fail "usage: list"; | |
23 | my $db = Odin::open_db; | |
24 | for my $r (@{$db->selectall_arrayref | |
3300e9a2 | 25 | ("SELECT tag, stamp, url |
be24e9af MW |
26 | FROM odin_shorturl WHERE owner = ? |
27 | ORDER BY stamp", undef, $Odin::WHO)}) { | |
3300e9a2 | 28 | my ($tag, $stamp, $url) = @$r; |
cc346ee1 | 29 | Odin::print_columns Odin::fmt_time $stamp => 25, $tag => 12, $url =>0; |
be24e9af MW |
30 | } |
31 | } elsif ($op eq "new") { | |
32 | @ARGV == 1 or Odin::fail "usage: new URL"; | |
33 | my ($url) = @ARGV; | |
34 | my $tag = Odin::new_shorturl $url; | |
35 | print "$Odin::SHORTURL/$tag\n"; | |
36 | } elsif ($op eq "get") { | |
37 | @ARGV >= 0 or Odin::fail "usage: get TAG ..."; | |
38 | if (@ARGV == 1) { print Odin::get_shorturl $ARGV[0], "\n"; } | |
39 | else { | |
40 | for my $tag (@ARGV) | |
41 | { printf "%-12s %s\n", $tag, Odin::get_shorturl $tag; } | |
42 | } | |
43 | } elsif ($op eq "del") { | |
44 | @ARGV >= 0 or Odin::fail "usage: del TAG ..."; | |
45 | Odin::delete_shorturl @ARGV; | |
46 | } else { | |
47 | Odin::fail "unknown operation `$op'"; | |
48 | } |