Indent query body to turn into function

This commit is contained in:
Mikaël Bouillot 2017-05-10 21:20:51 +02:00
parent edd43b095c
commit 6d7694dff9

163
query.py
View file

@ -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)