-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathquery.py
43 lines (40 loc) · 1.39 KB
/
query.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import argparse
from vcpckversions import PortsRepo, Port, PortsDB
if __name__ == "__main__":
parser = argparse.ArgumentParser( description='Query ports.' )
parser.add_argument( "--pkg", dest="pkg", help="Package to query with an optional version. Example: zlib or zlib/1.2.11-1")
parser.add_argument( "--db", dest="db", help="SQLite file with ports information")
parser.add_argument( "--like", dest="like", action='store_true', help="Look for packages with a similar name. Version is not used.")
args = parser.parse_args()
if args.db and args.pkg:
db = PortsDB( None )
db.connect( args.db )
pkgFolderAndVersion = args.pkg.split( "/" )
if len( pkgFolderAndVersion ) == 2:
pkgFolder = pkgFolderAndVersion[0]
pkgVersion = pkgFolderAndVersion[1]
elif len( pkgFolderAndVersion ) == 1:
pkgFolder = pkgFolderAndVersion[0]
pkgVersion = ""
else:
print( "Wrong package parameter" )
parser.print_help()
exit()
if pkgFolder:
if args.like:
packagesLike = db.packagesLike( pkgFolder )
if len( packagesLike ) == 1:
for v in db.versions( packagesLike[0] ):
port = db.port( packagesLike[0], v )
print( port )
else:
print( packagesLike )
elif pkgVersion:
port = db.port( pkgFolder, pkgVersion )
print( port )
else:
for v in db.versions( pkgFolder ):
port = db.port( pkgFolder, v, False )
print( port )
else:
parser.print_help()