summaryrefslogtreecommitdiff
path: root/url
diff options
context:
space:
mode:
Diffstat (limited to 'url')
-rwxr-xr-xurl26
1 files changed, 26 insertions, 0 deletions
diff --git a/url b/url
new file mode 100755
index 0000000..c4c76db
--- /dev/null
+++ b/url
@@ -0,0 +1,26 @@
+#!/usr/bin/env perl
+
+use feature 'say';
+use URL::Encode qw(:all);
+use String::ShellQuote;
+
+my %commands = (
+ encode => sub { say url_encode(shift) },
+ decode => sub { say url_decode(shift) },
+);
+
+die "Usage: $0 <${\join '|',keys %commands}> ARGS" unless @ARGV >= 1;
+
+my $command = shift;
+die "No such command $command" unless defined $commands{$command};
+
+if (@ARGV) {
+ for (@ARGV) {
+ $commands{$command}->($_);
+ }
+} else {
+ while (<STDIN>) {
+ chomp;
+ $commands{$command}->($_);
+ }
+}