Add a main() method to all Python scripts

Move the main program logic of all scripts to main() methods such that
they can be used as modules and easily be invoked by setuptools wrapper
scripts.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
Lukas Fleischer 2016-09-20 08:42:59 +02:00
parent f3fb614f19
commit 603b5b5db9
6 changed files with 122 additions and 84 deletions

View file

@ -18,6 +18,8 @@ db_path = config.get('aurblup', 'db-path')
sync_dbs = config.get('aurblup', 'sync-dbs').split(' ') sync_dbs = config.get('aurblup', 'sync-dbs').split(' ')
servers = config.get('aurblup', 'servers').split(' ') servers = config.get('aurblup', 'servers').split(' ')
def main():
blacklist = set() blacklist = set()
providers = set() providers = set()
repomap = dict() repomap = dict()
@ -58,3 +60,7 @@ for pkg, provides in oldproviders.difference(providers):
db.commit() db.commit()
db.close() db.close()
if __name__ == '__main__':
main()

View file

@ -17,6 +17,8 @@ aur_db_user = config.get('database', 'user')
aur_db_pass = config.get('database', 'password') aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket') aur_db_socket = config.get('database', 'socket')
def main():
db = mysql.connector.connect(host=aur_db_host, user=aur_db_user, db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
passwd=aur_db_pass, db=aur_db_name, passwd=aur_db_pass, db=aur_db_name,
unix_socket=aur_db_socket, buffered=True) unix_socket=aur_db_socket, buffered=True)
@ -28,14 +30,20 @@ pkgbaselist_header = "# AUR package base list, generated on " + datestr
with gzip.open(docroot + "packages.gz", "w") as f: with gzip.open(docroot + "packages.gz", "w") as f:
f.write(bytes(pkglist_header + "\n", "UTF-8")) f.write(bytes(pkglist_header + "\n", "UTF-8"))
cur.execute("SELECT Packages.Name FROM Packages INNER JOIN PackageBases " + cur.execute("SELECT Packages.Name FROM Packages " +
"INNER JOIN PackageBases " +
"ON PackageBases.ID = Packages.PackageBaseID " + "ON PackageBases.ID = Packages.PackageBaseID " +
"WHERE PackageBases.PackagerUID IS NOT NULL") "WHERE PackageBases.PackagerUID IS NOT NULL")
f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()]) f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
with gzip.open(docroot + "pkgbase.gz", "w") as f: with gzip.open(docroot + "pkgbase.gz", "w") as f:
f.write(bytes(pkgbaselist_header + "\n", "UTF-8")) f.write(bytes(pkgbaselist_header + "\n", "UTF-8"))
cur.execute("SELECT Name FROM PackageBases WHERE PackagerUID IS NOT NULL") cur.execute("SELECT Name FROM PackageBases " +
"WHERE PackagerUID IS NOT NULL")
f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()]) f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
db.close() db.close()
if __name__ == '__main__':
main()

View file

@ -427,7 +427,7 @@ def tu_vote_reminder(cur, vote_id):
send_notification(to, subject, body, refs) send_notification(to, subject, body, refs)
if __name__ == '__main__': def main():
action = sys.argv[1] action = sys.argv[1]
action_map = { action_map = {
'send-resetkey': send_resetkey, 'send-resetkey': send_resetkey,
@ -454,3 +454,7 @@ if __name__ == '__main__':
db.commit() db.commit()
db.close() db.close()
if __name__ == '__main__':
main()

View file

@ -13,13 +13,20 @@ aur_db_user = config.get('database', 'user')
aur_db_pass = config.get('database', 'password') aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket') aur_db_socket = config.get('database', 'socket')
def main():
db = mysql.connector.connect(host=aur_db_host, user=aur_db_user, db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
passwd=aur_db_pass, db=aur_db_name, passwd=aur_db_pass, db=aur_db_name,
unix_socket=aur_db_socket, buffered=True) unix_socket=aur_db_socket, buffered=True)
cur = db.cursor() cur = db.cursor()
cur.execute("DELETE FROM PackageBases WHERE " + cur.execute("DELETE FROM PackageBases WHERE " +
"UNIX_TIMESTAMP() - SubmittedTS > 86400 AND PackagerUID IS NULL") "UNIX_TIMESTAMP() - SubmittedTS > 86400 " +
"AND PackagerUID IS NULL")
db.commit() db.commit()
db.close() db.close()
if __name__ == '__main__':
main()

View file

@ -13,13 +13,16 @@ aur_db_user = config.get('database', 'user')
aur_db_pass = config.get('database', 'password') aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket') aur_db_socket = config.get('database', 'socket')
def main():
db = mysql.connector.connect(host=aur_db_host, user=aur_db_user, db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
passwd=aur_db_pass, db=aur_db_name, passwd=aur_db_pass, db=aur_db_name,
unix_socket=aur_db_socket, buffered=True) unix_socket=aur_db_socket, buffered=True)
cur = db.cursor() cur = db.cursor()
cur.execute("UPDATE PackageBases SET NumVotes = (SELECT COUNT(*) FROM " + cur.execute("UPDATE PackageBases SET NumVotes = (" +
"PackageVotes WHERE PackageVotes.PackageBaseID = PackageBases.ID)") "SELECT COUNT(*) FROM PackageVotes " +
"WHERE PackageVotes.PackageBaseID = PackageBases.ID)")
cur.execute("UPDATE PackageBases SET Popularity = (" + cur.execute("UPDATE PackageBases SET Popularity = (" +
"SELECT COALESCE(SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)), 0.0) " + "SELECT COALESCE(SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)), 0.0) " +
@ -28,3 +31,7 @@ cur.execute("UPDATE PackageBases SET Popularity = (" +
db.commit() db.commit()
db.close() db.close()
if __name__ == '__main__':
main()

View file

@ -16,6 +16,8 @@ aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket') aur_db_socket = config.get('database', 'socket')
notify_cmd = config.get('notifications', 'notify-cmd') notify_cmd = config.get('notifications', 'notify-cmd')
def main():
db = mysql.connector.connect(host=aur_db_host, user=aur_db_user, db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
passwd=aur_db_pass, db=aur_db_name, passwd=aur_db_pass, db=aur_db_name,
unix_socket=aur_db_socket, buffered=True) unix_socket=aur_db_socket, buffered=True)
@ -30,3 +32,7 @@ cur.execute("SELECT ID FROM TU_VoteInfo WHERE End >= %s AND End <= %s",
for vote_id in [row[0] for row in cur.fetchall()]: for vote_id in [row[0] for row in cur.fetchall()]:
subprocess.Popen((notify_cmd, 'tu-vote-reminder', str(vote_id))) subprocess.Popen((notify_cmd, 'tu-vote-reminder', str(vote_id)))
if __name__ == '__main__':
main()