Indent query body to turn into function
This commit is contained in:
parent
edd43b095c
commit
6d7694dff9
1 changed files with 82 additions and 81 deletions
163
query.py
163
query.py
|
|
@ -32,92 +32,93 @@ except KeyError:
|
|||
|
||||
db = data.DB (dbDir, readonly=True)
|
||||
|
||||
cmd = argv[1]
|
||||
if True:
|
||||
cmd = argv[1]
|
||||
|
||||
if cmd == 'versions':
|
||||
for p in scriptLines ('list-tags', '-h'):
|
||||
if db.vers.exists (p.split(b' ')[2]):
|
||||
echo (p + b'\n')
|
||||
if cmd == 'versions':
|
||||
for p in scriptLines ('list-tags', '-h'):
|
||||
if db.vers.exists (p.split(b' ')[2]):
|
||||
echo (p + b'\n')
|
||||
|
||||
elif cmd == 'latest':
|
||||
p = script ('get-latest')
|
||||
echo (p)
|
||||
|
||||
elif cmd == 'type':
|
||||
version = argv[2]
|
||||
path = argv[3]
|
||||
p = script ('get-type', version, path)
|
||||
echo (p)
|
||||
|
||||
elif cmd == 'dir':
|
||||
version = argv[2]
|
||||
path = argv[3]
|
||||
p = script ('get-dir', version, path)
|
||||
echo (p)
|
||||
|
||||
elif cmd == 'file':
|
||||
version = argv[2]
|
||||
path = argv[3]
|
||||
ext = path[-2:]
|
||||
|
||||
if ext == '.c' or ext == '.h':
|
||||
tokens = scriptLines ('tokenize-file', version, path)
|
||||
even = True
|
||||
for tok in tokens:
|
||||
even = not even
|
||||
if even and db.defs.exists (tok) and lib.isIdent (tok):
|
||||
tok = b'\033[31m' + tok + b'\033[0m'
|
||||
else:
|
||||
tok = lib.unescape (tok)
|
||||
echo (tok)
|
||||
else:
|
||||
p = script ('get-file', version, path)
|
||||
elif cmd == 'latest':
|
||||
p = script ('get-latest')
|
||||
echo (p)
|
||||
|
||||
elif cmd == 'ident':
|
||||
version = argv[2]
|
||||
ident = argv[3]
|
||||
elif cmd == 'type':
|
||||
version = argv[2]
|
||||
path = argv[3]
|
||||
p = script ('get-type', version, path)
|
||||
echo (p)
|
||||
|
||||
if not db.defs.exists (ident):
|
||||
print (argv[0] + ': Unknown identifier: ' + ident)
|
||||
exit()
|
||||
elif cmd == 'dir':
|
||||
version = argv[2]
|
||||
path = argv[3]
|
||||
p = script ('get-dir', version, path)
|
||||
echo (p)
|
||||
|
||||
if not db.vers.exists (version):
|
||||
print (argv[0] + ': Unknown version: ' + version)
|
||||
exit()
|
||||
elif cmd == 'file':
|
||||
version = argv[2]
|
||||
path = argv[3]
|
||||
ext = path[-2:]
|
||||
|
||||
if ext == '.c' or ext == '.h':
|
||||
tokens = scriptLines ('tokenize-file', version, path)
|
||||
even = True
|
||||
for tok in tokens:
|
||||
even = not even
|
||||
if even and db.defs.exists (tok) and lib.isIdent (tok):
|
||||
tok = b'\033[31m' + tok + b'\033[0m'
|
||||
else:
|
||||
tok = lib.unescape (tok)
|
||||
echo (tok)
|
||||
else:
|
||||
p = script ('get-file', version, path)
|
||||
echo (p)
|
||||
|
||||
elif cmd == 'ident':
|
||||
version = argv[2]
|
||||
ident = argv[3]
|
||||
|
||||
if not db.defs.exists (ident):
|
||||
print (argv[0] + ': Unknown identifier: ' + ident)
|
||||
exit()
|
||||
|
||||
if not db.vers.exists (version):
|
||||
print (argv[0] + ': Unknown version: ' + version)
|
||||
exit()
|
||||
|
||||
vers = db.vers.get (version).iter()
|
||||
defs = db.defs.get (ident).iter (dummy=True)
|
||||
# FIXME: see why we can have a discrepancy between defs and refs
|
||||
if db.refs.exists (ident):
|
||||
refs = db.refs.get (ident).iter (dummy=True)
|
||||
else:
|
||||
refs = data.RefList().iter (dummy=True)
|
||||
|
||||
id2, type, dline = next (defs)
|
||||
id3, rlines = next (refs)
|
||||
|
||||
dBuf = []
|
||||
rBuf = []
|
||||
|
||||
for id1, path in vers:
|
||||
while id1 > id2:
|
||||
id2, type, dline = next (defs)
|
||||
while id1 > id3:
|
||||
id3, rlines = next (refs)
|
||||
while id1 == id2:
|
||||
dBuf.append ((path, type, dline))
|
||||
id2, type, dline = next (defs)
|
||||
if id1 == id3:
|
||||
rBuf.append ((path, rlines))
|
||||
|
||||
print ('Defined in', len (dBuf), 'files:')
|
||||
for path, type, dline in sorted (dBuf):
|
||||
print (path + ': ' + str (dline) + ' (' + type + ')')
|
||||
|
||||
print ('\nReferenced in', len (rBuf), 'files:')
|
||||
for path, rlines in sorted (rBuf):
|
||||
print (path + ': ' + rlines)
|
||||
|
||||
vers = db.vers.get (version).iter()
|
||||
defs = db.defs.get (ident).iter (dummy=True)
|
||||
# FIXME: see why we can have a discrepancy between defs and refs
|
||||
if db.refs.exists (ident):
|
||||
refs = db.refs.get (ident).iter (dummy=True)
|
||||
else:
|
||||
refs = data.RefList().iter (dummy=True)
|
||||
|
||||
id2, type, dline = next (defs)
|
||||
id3, rlines = next (refs)
|
||||
|
||||
dBuf = []
|
||||
rBuf = []
|
||||
|
||||
for id1, path in vers:
|
||||
while id1 > id2:
|
||||
id2, type, dline = next (defs)
|
||||
while id1 > id3:
|
||||
id3, rlines = next (refs)
|
||||
while id1 == id2:
|
||||
dBuf.append ((path, type, dline))
|
||||
id2, type, dline = next (defs)
|
||||
if id1 == id3:
|
||||
rBuf.append ((path, rlines))
|
||||
|
||||
print ('Defined in', len (dBuf), 'files:')
|
||||
for path, type, dline in sorted (dBuf):
|
||||
print (path + ': ' + str (dline) + ' (' + type + ')')
|
||||
|
||||
print ('\nReferenced in', len (rBuf), 'files:')
|
||||
for path, rlines in sorted (rBuf):
|
||||
print (path + ': ' + rlines)
|
||||
|
||||
else:
|
||||
print (argv[0] + ': Unknown subcommand: ' + cmd)
|
||||
print (argv[0] + ': Unknown subcommand: ' + cmd)
|
||||
|
|
|
|||
Loading…
Reference in a new issue