You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppManager/build_json.py

45 lines
1.4 KiB

#!/usr/local/bin/python3
import sqlite3
import json
import re
def main():
database = r"/usr/local/share/sqlports"
conn = sqlite3.connect(database)
data = []
pkgs = dict()
with conn:
cursor = conn.execute("SELECT FULLPKGNAME, COMMENT, DESCR_CONTENTS, WANTLIB, RUN_DEPENDS FROM PortsQ")
for row in cursor:
if not pkgs.get(row[0]):
pkgs[row[0]] = True
gui = False
tui = False
if row[3]:
m = re.search("(GL|SDL|gtk-3|X11|Qt5Gui)", row[3])
if m:
gui = True
m = re.search("(curses)", row[3])
if m:
tui = True
if row[4]:
m = re.search("x11/gtk\+3,-guic", row[4])
if m:
gui = True
if not gui and row[2] and row[3] and row[1] and not tui:
m = re.search("(client)", row[3]+row[1]+row[2])
if m:
tui = True
data.append({
"pkgname": row[0], #"-".join(row[0].split("-")[:-1]),
"comment": row[1],
"descr": row[2],
"gui": gui,
"tui": tui
})
print(json.dumps(data))
main()