summaryrefslogtreecommitdiff
path: root/plugins/urltools
diff options
context:
space:
mode:
authorStephen Zhuang <stephen.zhuang@gmail.com>2013-01-06 14:10:42 +0800
committerStephen Zhuang <stephen.zhuang@gmail.com>2013-01-06 14:10:42 +0800
commit914c47b3473b000288c693523f83fde998282a81 (patch)
treea29cf3d796544a3b2807e26812011cda51f644a9 /plugins/urltools
parent692dca07158413ae27b2064c303240f5b9621cff (diff)
parent80a603259657acab97badbae20003b5a34c901f9 (diff)
downloadzsh-914c47b3473b000288c693523f83fde998282a81.tar.gz
zsh-914c47b3473b000288c693523f83fde998282a81.tar.bz2
zsh-914c47b3473b000288c693523f83fde998282a81.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'plugins/urltools')
-rw-r--r--plugins/urltools/urltools.plugin.zsh36
1 files changed, 36 insertions, 0 deletions
diff --git a/plugins/urltools/urltools.plugin.zsh b/plugins/urltools/urltools.plugin.zsh
new file mode 100644
index 000000000..4ddfff8ce
--- /dev/null
+++ b/plugins/urltools/urltools.plugin.zsh
@@ -0,0 +1,36 @@
+# URL Tools
+# Adds handy command line aliases useful for dealing with URLs
+#
+# Taken from:
+# http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/
+
+if [[ $(whence $URLTOOLS_METHOD) = "" ]]; then
+ URLTOOLS_METHOD=""
+fi
+
+if [[ $(whence node) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xnode" ) ]]; then
+ alias urlencode='node -e "console.log(encodeURIComponent(process.argv[1]))"'
+ alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"'
+elif [[ $(whence python) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xpython" ) ]]; then
+ alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
+ alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"'
+elif [[ $(whence ruby) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xruby" ) ]]; then
+ alias urlencode='ruby -r cgi -e "puts CGI.escape(ARGV[0])"'
+ alias urldecode='ruby -r cgi -e "puts CGI.unescape(ARGV[0])"'
+elif [[ $(whence php) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xphp" ) ]]; then
+ alias urlencode='php -r "echo rawurlencode(\$argv[1]); echo \"\n\";"'
+ alias urldecode='php -r "echo rawurldecode(\$argv[1]); echo \"\\n\";"'
+elif [[ $(whence perl) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xperl" ) ]]; then
+ if perl -MURI::Encode -e 1&> /dev/null; then
+ alias urlencode='perl -MURI::Encode -ep "uri_encode($ARGV[0]);"'
+ alias urldecode='perl -MURI::Encode -ep "uri_decode($ARGV[0]);"'
+ elif perl -MURI::Escape -e 1 &> /dev/null; then
+ alias urlencode='perl -MURI::Escape -ep "uri_escape($ARGV[0]);"'
+ alias urldecode='perl -MURI::Escape -ep "uri_unescape($ARGV[0]);"'
+ else
+ alias urlencode="perl -e '\$new=\$ARGV[0]; \$new =~ s/([^A-Za-z0-9])/sprintf(\"%%%02X\", ord(\$1))/seg; print \"\$new\n\";'"
+ alias urldecode="perl -e '\$new=\$ARGV[0]; \$new =~ s/\%([A-Fa-f0-9]{2})/pack(\"C\", hex(\$1))/seg; print \"\$new\n\";'"
+ fi
+fi
+
+unset URLTOOLS_METHOD \ No newline at end of file