-#!/usr/bin/plcsh
+#!/usr/bin/python /usr/bin/plcsh
# utility to store, read and diff our user base data for exporting to OMF
class OmfUserBase:
- def __init__ (self, options, filename):
- self.filename=filename
+ def __init__ (self, options):
self.options=options
for key_id in person['key_ids']:
print >>file, "ssh=%s"%pubkeys_by_id[key_id]
- def save(self):
+ def save(self, output):
"""
Write configuration store to file.
"""
-
- fileout = open(self.filename, 'w')
+
+ if output:
+ fileout = open(output, 'w')
+ else:
+ fileout=sys.stdout
print >>fileout, "# myplc simple userbase extration tools export-omf.py"
print >>fileout, "# generated on %s"%time.strftime("%Y-%m-%d @ %H:%M UTC",time.gmtime())
# store all ssh keys by key_id - keep only the public key
def main ():
- parser = OptionParser (usage="%prog [options] OUTPUT_FILE")
+ parser = OptionParser (usage="""%prog [options]
+Default output is on stdout""")
parser.add_option ("-n","--no-password", action="store_true",
dest="no_password", default=False, help="Don't include encrypted passwords")
+ parser.add_option ("-o","--output", action="store",
+ dest="output", default=None, help="Specify output filename")
options,args = parser.parse_args()
- try:
- output = args[0]
- except IndexError:
- parser.error("no output file")
+ if len(args)!=0:
+ parser.print_help()
+ sys.exit(1)
+
+ userbase=OmfUserBase(options)
+ userbase.save(options.output)
- userbase=OmfUserBase(options, output)
- userbase.save()
+
if __name__ == '__main__':
main()