Rename urlencode => url & rewrite

This commit is contained in:
Henrik Lissner 2017-07-03 18:13:08 +02:00
parent 2d7f36d18a
commit 2733333619
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 58 additions and 12 deletions

58
bin/url Executable file
View file

@ -0,0 +1,58 @@
#!/usr/bin/env python
# Encode/decode url strings in stdin or the given file(s).
import getopt
import fileinput
import sys
import os
try:
from urllib.parse import quote_plus, quote, unquote_plus, unquote
except ImportError:
from urllib import quote_plus, quote, unquote_plus, unquote
#
def encode(text, plus=False):
return quote(text.strip())
def encode_plus(text):
return quote_plus(text.strip())
def decode(text):
return unquote(text.strip())
def decode_plus(text):
return unquote_plus(text.strip())
def usage():
# TODO Improve this
print("Usage: {} [-edEDh] file1[ file2[ ...]]".format(os.path.basename(sys.argv[0])))
#
if __name__ == '__main__':
COMMANDS = {
"-e": encode,
"-E": encode_plus,
"-d": decode,
"-D": decode_plus
}
try:
optlist, args = getopt.getopt(sys.argv[1:], 'edEDh')
sys.argv = [sys.argv[0]] + args
except getopt.GetoptError as err:
print(err)
sys.exit(1)
action = encode
for o, a in optlist:
if o in COMMANDS:
action = COMMANDS[o]
elif o == '-h':
usage()
sys.exit()
else:
assert False, "unhandled option"
input = "\n".join([line for line in fileinput.input()])
print(action(input))

View file

@ -1,12 +0,0 @@
#!/usr/bin/env python
import sys
try:
from urllib.parse import quote_plus
except ImportError:
from urllib import quote_plus
if sys.argv[1:]:
text = " ".join(sys.argv[1:])
else:
text = "".join(sys.stdin.readlines())
print(quote_plus(text.strip()))