From: James Bunton Date: Thu, 2 Jan 2014 13:18:32 +0000 (+1100) Subject: passwdgen: added command line options X-Git-Url: https://code.delx.au/monosys/commitdiff_plain/a95cb67070b49ca5e4265fd26d1696a582ba8eb6 passwdgen: added command line options --- diff --git a/bin/passwdgen b/bin/passwdgen index b72865f..f375f27 100755 --- a/bin/passwdgen +++ b/bin/passwdgen @@ -2,22 +2,32 @@ import random, string, sys -chars = filter(lambda c: c.isalnum(), map(chr, range(256))) -chars = chars * 2 -chars += "!@#%^&*(){}[]/=?+_-;:,.<>" +alnum_chars = filter(lambda c: c.isalnum(), map(chr, range(256))) +full_chars = alnum_chars * 2 + list("!@#%^&*(){}[]/=?+_-;:,.<>") -def generate(length): +def generate(chars, length): return "".join([random.choice(chars) for i in xrange(length)]) +def print_usage(): + print "Usage: %s [length] [alnum|full]" % sys.argv[0] + sys.exit(1) + if __name__ == "__main__": - try: + if len(sys.argv) <= 1: + n = 20 + elif sys.argv[1].isdigit(): n = int(sys.argv[1]) - except: - print "Usage: %s length" % sys.argv[0] - sys.exit(1) - - print generate(n) - - - + else: + print_usage() + + if len(sys.argv) <= 2: + chars = alnum_chars + elif sys.argv[2] == "alnum": + chars = alnum_chars + elif sys.argv[2] == "full": + chars = full_chars + else: + print_usage() + + print generate(chars, n)