helm/bin/uri
2017-10-03 19:05:00 +02:00

50 lines
1.1 KiB
Python
Executable file

#!/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 usage():
"""Print out help for this script"""
print("Usage: {} [-edEDh] file1[ file2[ ...]]".format(os.path.basename(sys.argv[0])))
def main(commands):
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 = quote
for flag, _ in optlist:
if flag in commands:
action = commands[flag]
elif flag == '-h':
usage()
sys.exit()
else:
assert False, "unhandled option"
print(action("\n".join([line for line in fileinput.input()]).strip()))
if __name__ == '__main__':
main({
"-e": quote,
"-E": quote_plus,
"-d": unquote,
"-D": unquote_plus
})