X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fimport_users_from_passwd.py;h=994a558a17696a682454b7ff0756aafaf2a7570f;hb=1ec6fce21325f5b3be284dd63981e6574e22d223;hp=6cf0e46ae33765b50e28eb8a9d4569a13dac237d;hpb=59fd5aa2a8be3b76dbc968429c457f096adfa472;p=dak.git diff --git a/dak/import_users_from_passwd.py b/dak/import_users_from_passwd.py index 6cf0e46a..994a558a 100755 --- a/dak/import_users_from_passwd.py +++ b/dak/import_users_from_passwd.py @@ -1,8 +1,7 @@ #!/usr/bin/env python # Sync PostgreSQL users with system users -# Copyright (C) 2001, 2002 James Troup -# $Id: julia,v 1.9 2003-01-02 18:12:50 troup Exp $ +# Copyright (C) 2001, 2002, 2006 James Troup # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -30,18 +29,18 @@ ################################################################################ -import pg, pwd, sys; -import utils; -import apt_pkg; +import pg, pwd, sys +import apt_pkg +import daklib.utils ################################################################################ -Cnf = None; -projectB = None; +Cnf = None +projectB = None ################################################################################ def usage (exit_code=0): - print """Usage: julia [OPTION]... + print """Usage: dak import-users-from-passwd [OPTION]... Sync PostgreSQL's users with system users. -h, --help show this help and exit @@ -53,66 +52,66 @@ Sync PostgreSQL's users with system users. ################################################################################ def main (): - global Cnf, projectB; + global Cnf, projectB - Cnf = utils.get_conf() + Cnf = daklib.utils.get_conf() - Arguments = [('n', "no-action", "Julia::Options::No-Action"), - ('q', "quiet", "Julia::Options::Quiet"), - ('v', "verbose", "Julia::Options::Verbose"), - ('h', "help", "Julia::Options::Help")]; + Arguments = [('n', "no-action", "Import-Users-From-Passwd::Options::No-Action"), + ('q', "quiet", "Import-Users-From-Passwd::Options::Quiet"), + ('v', "verbose", "Import-Users-From-Passwd::Options::Verbose"), + ('h', "help", "Import-Users-From-Passwd::Options::Help")] for i in [ "no-action", "quiet", "verbose", "help" ]: - if not Cnf.has_key("Julia::Options::%s" % (i)): - Cnf["Julia::Options::%s" % (i)] = ""; + if not Cnf.has_key("Import-Users-From-Passwd::Options::%s" % (i)): + Cnf["Import-Users-From-Passwd::Options::%s" % (i)] = "" - arguments = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv); - Options = Cnf.SubTree("Julia::Options") + arguments = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv) + Options = Cnf.SubTree("Import-Users-From-Passwd::Options") if Options["Help"]: - usage(); + usage() elif arguments: - utils.warn("julia takes no non-option arguments."); - usage(1); + daklib.utils.warn("dak import-users-from-passwd takes no non-option arguments.") + usage(1) - projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"])); - valid_gid = int(Cnf.get("Julia::ValidGID","")); + projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"])) + valid_gid = int(Cnf.get("Import-Users-From-Passwd::ValidGID","")) - passwd_unames = {}; + passwd_unames = {} for entry in pwd.getpwall(): - uname = entry[0]; - gid = entry[3]; + uname = entry[0] + gid = entry[3] if valid_gid and gid != valid_gid: if Options["Verbose"]: - print "Skipping %s (GID %s != Valid GID %s)." % (uname, gid, valid_gid); - continue; - passwd_unames[uname] = ""; + print "Skipping %s (GID %s != Valid GID %s)." % (uname, gid, valid_gid) + continue + passwd_unames[uname] = "" - postgres_unames = {}; - q = projectB.query("SELECT usename FROM pg_user"); - ql = q.getresult(); + postgres_unames = {} + q = projectB.query("SELECT usename FROM pg_user") + ql = q.getresult() for i in ql: - uname = i[0]; - postgres_unames[uname] = ""; + uname = i[0] + postgres_unames[uname] = "" - known_postgres_unames = {}; - for i in Cnf.get("Julia::KnownPostgres","").split(","): - uname = i.strip(); - known_postgres_unames[uname] = ""; + known_postgres_unames = {} + for i in Cnf.get("Import-Users-From-Passwd::KnownPostgres","").split(","): + uname = i.strip() + known_postgres_unames[uname] = "" keys = postgres_unames.keys() - keys.sort(); + keys.sort() for uname in keys: if not passwd_unames.has_key(uname)and not known_postgres_unames.has_key(uname): - print "W: %s is in Postgres but not the passwd file or list of known Postgres users." % (uname); + print "W: %s is in Postgres but not the passwd file or list of known Postgres users." % (uname) keys = passwd_unames.keys() - keys.sort(); + keys.sort() for uname in keys: if not postgres_unames.has_key(uname): if not Options["Quiet"]: - print "Creating %s user in Postgres." % (uname); + print "Creating %s user in Postgres." % (uname) if not Options["No-Action"]: - q = projectB.query('CREATE USER "%s"' % (uname)); + q = projectB.query('CREATE USER "%s"' % (uname)) #######################################################################################