mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
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:
parent
f3fb614f19
commit
603b5b5db9
6 changed files with 122 additions and 84 deletions
|
@ -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()
|
||||
def main():
|
||||
blacklist = set()
|
||||
providers = set()
|
||||
repomap = dict()
|
||||
|
||||
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
|
||||
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()
|
||||
|
||||
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()
|
||||
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
|
||||
|
||||
cur.execute("SELECT Name, Provides FROM OfficialProviders")
|
||||
oldproviders = set(cur.fetchall())
|
||||
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()
|
||||
|
||||
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])
|
||||
cur.execute("SELECT Name, Provides FROM OfficialProviders")
|
||||
oldproviders = set(cur.fetchall())
|
||||
|
||||
db.commit()
|
||||
db.close()
|
||||
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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue