]> code.delx.au - monosys/blob - bin/passwdgen
notes: fix raspi install notes, also @home -> @username
[monosys] / bin / passwdgen
1 #!/usr/bin/env python3
2
3 import random, sys
4
5 alnum_chars = list(filter(lambda c: c.isalnum(), map(chr, range(128))))
6 full_chars = alnum_chars * 2 + list("!@#%^&*(){}[]/=?+_-;:,.<>")
7
8 def generate(chars, length):
9 return "".join([random.choice(chars) for i in range(length)])
10
11 def print_usage():
12 print("Usage: %s [length] [alnum|full]" % sys.argv[0])
13 sys.exit(1)
14
15 if __name__ == "__main__":
16 if len(sys.argv) <= 1:
17 n = 20
18 elif sys.argv[1].isdigit():
19 n = int(sys.argv[1])
20 else:
21 print_usage()
22
23 if len(sys.argv) <= 2:
24 chars = alnum_chars
25 elif sys.argv[2] == "alnum":
26 chars = alnum_chars
27 elif sys.argv[2] == "full":
28 chars = full_chars
29 else:
30 print_usage()
31
32 print(generate(chars, n))
33