summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@archlinux.org>2016-09-20 08:42:59 +0200
committerLukas Fleischer <lfleischer@archlinux.org>2016-09-29 22:07:06 +0200
commit603b5b5db916da7d2a44e9e89587d62859840287 (patch)
tree570600310ef7fa112980b6a03dac068edb644888
parentf3fb614f196a1feb2738c56364f6e877d474ff2d (diff)
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>
-rwxr-xr-xscripts/aurblup.py86
-rwxr-xr-xscripts/mkpkglists.py52
-rwxr-xr-xscripts/notify.py6
-rwxr-xr-xscripts/pkgmaint.py23
-rwxr-xr-xscripts/popupdate.py31
-rwxr-xr-xscripts/tuvotereminder.py28
6 files changed, 132 insertions, 94 deletions
diff --git a/scripts/aurblup.py b/scripts/aurblup.py
index 6733b45..07119b5 100755
--- a/scripts/aurblup.py
+++ b/scripts/aurblup.py
@@ -18,43 +18,49 @@ db_path = config.get('aurblup', 'db-path')
sync_dbs = config.get('aurblup', 'sync-dbs').split(' ')
servers = config.get('aurblup', 'servers').split(' ')
-blacklist = set()
-providers = set()
-repomap = dict()
-
-h = pyalpm.Handle("/", db_path)
-for sync_db in sync_dbs:
- repo = h.register_syncdb(sync_db, pyalpm.SIG_DATABASE_OPTIONAL)
- repo.servers = [server.replace("%s", sync_db) for server in servers]
- t = h.init_transaction()
- repo.update(False)
- t.release()
-
- for pkg in repo.pkgcache:
- blacklist.add(pkg.name)
- [blacklist.add(x) for x in pkg.replaces]
- providers.add((pkg.name, pkg.name))
- repomap[(pkg.name, pkg.name)] = repo.name
- for provision in pkg.provides:
- provisionname = re.sub(r'(<|=|>).*', '', provision)
- providers.add((pkg.name, provisionname))
- repomap[(pkg.name, provisionname)] = repo.name
-
-db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
- passwd=aur_db_pass, db=aur_db_name,
- unix_socket=aur_db_socket, buffered=True)
-cur = db.cursor()
-
-cur.execute("SELECT Name, Provides FROM OfficialProviders")
-oldproviders = set(cur.fetchall())
-
-for pkg, provides in providers.difference(oldproviders):
- repo = repomap[(pkg, provides)]
- cur.execute("INSERT INTO OfficialProviders (Name, Repo, Provides) "
- "VALUES (%s, %s, %s)", [pkg, repo, provides])
-for pkg, provides in oldproviders.difference(providers):
- cur.execute("DELETE FROM OfficialProviders "
- "WHERE Name = %s AND Provides = %s", [pkg, provides])
-
-db.commit()
-db.close()
+
+def main():
+ blacklist = set()
+ providers = set()
+ repomap = dict()
+
+ h = pyalpm.Handle("/", db_path)
+ for sync_db in sync_dbs:
+ repo = h.register_syncdb(sync_db, pyalpm.SIG_DATABASE_OPTIONAL)
+ repo.servers = [server.replace("%s", sync_db) for server in servers]
+ t = h.init_transaction()
+ repo.update(False)
+ t.release()
+
+ for pkg in repo.pkgcache:
+ blacklist.add(pkg.name)
+ [blacklist.add(x) for x in pkg.replaces]
+ providers.add((pkg.name, pkg.name))
+ repomap[(pkg.name, pkg.name)] = repo.name
+ for provision in pkg.provides:
+ provisionname = re.sub(r'(<|=|>).*', '', provision)
+ providers.add((pkg.name, provisionname))
+ repomap[(pkg.name, provisionname)] = repo.name
+
+ db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
+ passwd=aur_db_pass, db=aur_db_name,
+ unix_socket=aur_db_socket, buffered=True)
+ cur = db.cursor()
+
+ cur.execute("SELECT Name, Provides FROM OfficialProviders")
+ oldproviders = set(cur.fetchall())
+
+ for pkg, provides in providers.difference(oldproviders):
+ repo = repomap[(pkg, provides)]
+ cur.execute("INSERT INTO OfficialProviders (Name, Repo, Provides) "
+ "VALUES (%s, %s, %s)", [pkg, repo, provides])
+ for pkg, provides in oldproviders.difference(providers):
+ cur.execute("DELETE FROM OfficialProviders "
+ "WHERE Name = %s AND Provides = %s", [pkg, provides])
+
+ db.commit()
+ db.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/mkpkglists.py b/scripts/mkpkglists.py
index a6f8a19..8cab0a9 100755
--- a/scripts/mkpkglists.py
+++ b/scripts/mkpkglists.py
@@ -17,25 +17,33 @@ aur_db_user = config.get('database', 'user')
aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket')
-db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
- passwd=aur_db_pass, db=aur_db_name,
- unix_socket=aur_db_socket, buffered=True)
-cur = db.cursor()
-
-datestr = datetime.datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT")
-pkglist_header = "# AUR package list, generated on " + datestr
-pkgbaselist_header = "# AUR package base list, generated on " + datestr
-
-with gzip.open(docroot + "packages.gz", "w") as f:
- f.write(bytes(pkglist_header + "\n", "UTF-8"))
- cur.execute("SELECT Packages.Name FROM Packages INNER JOIN PackageBases " +
- "ON PackageBases.ID = Packages.PackageBaseID " +
- "WHERE PackageBases.PackagerUID IS NOT NULL")
- f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
-
-with gzip.open(docroot + "pkgbase.gz", "w") as f:
- f.write(bytes(pkgbaselist_header + "\n", "UTF-8"))
- cur.execute("SELECT Name FROM PackageBases WHERE PackagerUID IS NOT NULL")
- f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
-
-db.close()
+
+def main():
+ db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
+ passwd=aur_db_pass, db=aur_db_name,
+ unix_socket=aur_db_socket, buffered=True)
+ cur = db.cursor()
+
+ datestr = datetime.datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT")
+ pkglist_header = "# AUR package list, generated on " + datestr
+ pkgbaselist_header = "# AUR package base list, generated on " + datestr
+
+ with gzip.open(docroot + "packages.gz", "w") as f:
+ f.write(bytes(pkglist_header + "\n", "UTF-8"))
+ cur.execute("SELECT Packages.Name FROM Packages " +
+ "INNER JOIN PackageBases " +
+ "ON PackageBases.ID = Packages.PackageBaseID " +
+ "WHERE PackageBases.PackagerUID IS NOT NULL")
+ f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
+
+ with gzip.open(docroot + "pkgbase.gz", "w") as f:
+ f.write(bytes(pkgbaselist_header + "\n", "UTF-8"))
+ cur.execute("SELECT Name FROM PackageBases " +
+ "WHERE PackagerUID IS NOT NULL")
+ f.writelines([bytes(x[0] + "\n", "UTF-8") for x in cur.fetchall()])
+
+ db.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/notify.py b/scripts/notify.py
index a640e45..e8210a8 100755
--- a/scripts/notify.py
+++ b/scripts/notify.py
@@ -427,7 +427,7 @@ def tu_vote_reminder(cur, vote_id):
send_notification(to, subject, body, refs)
-if __name__ == '__main__':
+def main():
action = sys.argv[1]
action_map = {
'send-resetkey': send_resetkey,
@@ -454,3 +454,7 @@ if __name__ == '__main__':
db.commit()
db.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/pkgmaint.py b/scripts/pkgmaint.py
index 0eb9422..346b046 100755
--- a/scripts/pkgmaint.py
+++ b/scripts/pkgmaint.py
@@ -13,13 +13,20 @@ aur_db_user = config.get('database', 'user')
aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket')
-db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
- passwd=aur_db_pass, db=aur_db_name,
- unix_socket=aur_db_socket, buffered=True)
-cur = db.cursor()
-cur.execute("DELETE FROM PackageBases WHERE " +
- "UNIX_TIMESTAMP() - SubmittedTS > 86400 AND PackagerUID IS NULL")
+def main():
+ db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
+ passwd=aur_db_pass, db=aur_db_name,
+ unix_socket=aur_db_socket, buffered=True)
+ cur = db.cursor()
-db.commit()
-db.close()
+ cur.execute("DELETE FROM PackageBases WHERE " +
+ "UNIX_TIMESTAMP() - SubmittedTS > 86400 " +
+ "AND PackagerUID IS NULL")
+
+ db.commit()
+ db.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/popupdate.py b/scripts/popupdate.py
index f3ba513..26d8379 100755
--- a/scripts/popupdate.py
+++ b/scripts/popupdate.py
@@ -13,18 +13,25 @@ aur_db_user = config.get('database', 'user')
aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket')
-db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
- passwd=aur_db_pass, db=aur_db_name,
- unix_socket=aur_db_socket, buffered=True)
-cur = db.cursor()
-cur.execute("UPDATE PackageBases SET NumVotes = (SELECT COUNT(*) FROM " +
- "PackageVotes WHERE PackageVotes.PackageBaseID = PackageBases.ID)")
+def main():
+ db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
+ passwd=aur_db_pass, db=aur_db_name,
+ unix_socket=aur_db_socket, buffered=True)
+ cur = db.cursor()
-cur.execute("UPDATE PackageBases SET Popularity = (" +
- "SELECT COALESCE(SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)), 0.0) " +
- "FROM PackageVotes WHERE PackageVotes.PackageBaseID = " +
- "PackageBases.ID AND NOT VoteTS IS NULL)")
+ cur.execute("UPDATE PackageBases SET NumVotes = (" +
+ "SELECT COUNT(*) FROM PackageVotes " +
+ "WHERE PackageVotes.PackageBaseID = PackageBases.ID)")
-db.commit()
-db.close()
+ cur.execute("UPDATE PackageBases SET Popularity = (" +
+ "SELECT COALESCE(SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)), 0.0) " +
+ "FROM PackageVotes WHERE PackageVotes.PackageBaseID = " +
+ "PackageBases.ID AND NOT VoteTS IS NULL)")
+
+ db.commit()
+ db.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/tuvotereminder.py b/scripts/tuvotereminder.py
index 0992623..dc16397 100755
--- a/scripts/tuvotereminder.py
+++ b/scripts/tuvotereminder.py
@@ -16,17 +16,23 @@ aur_db_pass = config.get('database', 'password')
aur_db_socket = config.get('database', 'socket')
notify_cmd = config.get('notifications', 'notify-cmd')
-db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
- passwd=aur_db_pass, db=aur_db_name,
- unix_socket=aur_db_socket, buffered=True)
-cur = db.cursor()
-now = int(time.time())
-filter_from = now + 500
-filter_to = now + 172800
+def main():
+ db = mysql.connector.connect(host=aur_db_host, user=aur_db_user,
+ passwd=aur_db_pass, db=aur_db_name,
+ unix_socket=aur_db_socket, buffered=True)
+ cur = db.cursor()
-cur.execute("SELECT ID FROM TU_VoteInfo WHERE End >= %s AND End <= %s",
- [filter_from, filter_to])
+ now = int(time.time())
+ filter_from = now + 500
+ filter_to = now + 172800
-for vote_id in [row[0] for row in cur.fetchall()]:
- subprocess.Popen((notify_cmd, 'tu-vote-reminder', str(vote_id)))
+ cur.execute("SELECT ID FROM TU_VoteInfo WHERE End >= %s AND End <= %s",
+ [filter_from, filter_to])
+
+ for vote_id in [row[0] for row in cur.fetchall()]:
+ subprocess.Popen((notify_cmd, 'tu-vote-reminder', str(vote_id)))
+
+
+if __name__ == '__main__':
+ main()