mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Add repository information to official providers
When updating the list of packages provided by the official repositories, also save the repository names.
This commit is contained in:
parent
1e5578b92d
commit
b2e97cdd1e
3 changed files with 13 additions and 2 deletions
|
@ -310,6 +310,7 @@ CREATE TABLE PackageBlacklist (
|
|||
CREATE TABLE OfficialProviders (
|
||||
ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
Name VARCHAR(64) NOT NULL,
|
||||
Repo VARCHAR(64) NOT NULL,
|
||||
Provides VARCHAR(64) NOT NULL,
|
||||
PRIMARY KEY (ID)
|
||||
) ENGINE = InnoDB;
|
||||
|
|
|
@ -20,6 +20,7 @@ servers = config.get('aurblup', 'servers').split(' ')
|
|||
|
||||
blacklist = set()
|
||||
providers = set()
|
||||
repomap = dict()
|
||||
|
||||
h = pyalpm.Handle("/", db_path)
|
||||
for sync_db in sync_dbs:
|
||||
|
@ -33,9 +34,11 @@ for sync_db in sync_dbs:
|
|||
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,
|
||||
|
@ -54,8 +57,9 @@ cur.execute("SELECT Name, Provides FROM OfficialProviders")
|
|||
oldproviders = set(cur.fetchall())
|
||||
|
||||
for pkg, provides in providers.difference(oldproviders):
|
||||
cur.execute("INSERT INTO OfficialProviders (Name, Provides) "
|
||||
"VALUES (%s, %s)", [pkg, provides])
|
||||
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])
|
||||
|
|
|
@ -9,3 +9,9 @@ ALTER TABLE Users ADD COLUMN OwnershipNotify TINYINT(1) NOT NULL DEFAULT 1;
|
|||
----
|
||||
ALTER TABLE Users MODIFY LastLoginIPAddress VARCHAR(45) NULL DEFAULT NULL;
|
||||
----
|
||||
|
||||
3. Add a new column to store repository information of official providers:
|
||||
|
||||
----
|
||||
ALTER TABLE OfficialProviders ADD COLUMN Repo VARCHAR(64) NOT NULL;
|
||||
----
|
||||
|
|
Loading…
Add table
Reference in a new issue