public
Description: Python scripts hacked together to manage bearnaise.net
Homepage: http://bearnaise.net
Clone URL: git://github.com/sr/beadmin.git
webs (author)
Tue Dec 23 12:37:28 -0800 2008
sr (committer)
Tue Dec 23 12:52:28 -0800 2008
beadmin / pwgen.py
100755 49 lines (38 sloc) 1.586 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python
import os
class PwgenScore:
def __init__(self):
self.score = 0
return None
 
def calculScore(self, width, useCapital=0, useNumeral=0, useSymbol=0):
score = 0
if width > 6: score = score + 1
if width > 12: score = score + 1
if width > 30: score = score + 1
if useCapital: score = score + 2
if useNumeral: score = score + 2
if useSymbol: score = score + 3
 
self.score = score
return self.score
 
def returnLastScore(self):
return self.score
 
class Pwgen:
def returnArgLine(self, width, useCapital=0, useNumeral=0, useSymbol=0, useSecureMode=0, notAmbiguousChars=0):
options = ['--capitalize', '--no-capitalize','--numerals','--no-numerals', '--symbols', '--secure', '--ambiguous', '-1']
usedOptions = []
 
if useCapital: usedOptions.append(options[0])
else: usedOptions.append(options[1])
 
if useNumeral: usedOptions.append(options[2])
else: usedOptions.append(options[3])
 
if useSymbol: usedOptions.append(options[4])
if useSecureMode: usedOptions.append(options[5])
if notAmbiguousChars: usedOptions.append(options[6])
usedOptions.append(options[7])
 
usedOptions.append(str(int(width)))
usedOptions.append('1')
 
return ' '.join(usedOptions)
 
def returnPwgen(self, width, useCapital=0, useNumeral=0, useSymbol=0, useSecureMode=0, notAmbiguousChars=0):
argv = self.returnArgLine(width, useCapital, useNumeral, useSymbol, useSecureMode, notAmbiguousChars)
pwgenPipe = os.popen('pwgen %s' % (argv))
print '[pwgen_lib.Pwgen.returnPwgen] Executed : pwgen %s' % (argv)
return pwgenPipe.readline()[0:-1]