2018-11-14 10:52:04 -08:00
|
|
|
#!/usr/bin/env python2
|
2018-10-04 20:20:53 -04:00
|
|
|
import sys, os
|
|
|
|
|
|
|
|
|
|
import vars_init
|
2018-10-30 23:23:04 -04:00
|
|
|
vars_init.init_no_state()
|
2018-10-04 20:20:53 -04:00
|
|
|
|
2018-10-30 23:23:04 -04:00
|
|
|
import paths
|
Raw logs contain @@REDO lines instead of formatted data.
This makes them more reliable to parse. redo-log can parse each line,
format and print it, then recurse if necessary. This got a little ugly
because I wanted 'redo --raw-logs' to work, which we want to format the
output nicely, but not call redo-log.
(As a result, --raw-logs has a different meaning to redo and
redo-log, which is kinda dumb. I should fix that.)
As an added bonus, redo-log now handles indenting of recursive logs, so
if the build was a -> a/b -> a/b/c, and you look at the log for a/b, it
can still start at the top level indentation.
2018-11-13 04:05:42 -05:00
|
|
|
from logs import err
|
2018-10-04 20:20:53 -04:00
|
|
|
|
|
|
|
|
if len(sys.argv[1:]) != 1:
|
|
|
|
|
err('%s: exactly one argument expected.\n' % sys.argv[0])
|
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
|
|
want = sys.argv[1]
|
2018-11-03 03:36:13 -04:00
|
|
|
if not want:
|
|
|
|
|
err('cannot build the empty target ("").\n')
|
|
|
|
|
sys.exit(204)
|
|
|
|
|
|
2018-10-30 23:21:37 -04:00
|
|
|
abswant = os.path.abspath(want)
|
2018-10-30 23:23:04 -04:00
|
|
|
for dodir,dofile,basedir,basename,ext in paths.possible_do_files(abswant):
|
2018-10-04 20:20:53 -04:00
|
|
|
dopath = os.path.join('/', dodir, dofile)
|
|
|
|
|
relpath = os.path.relpath(dopath, '.')
|
|
|
|
|
exists = os.path.exists(dopath)
|
|
|
|
|
assert('\n' not in relpath)
|
2018-10-30 23:21:37 -04:00
|
|
|
print relpath
|
2018-10-04 20:20:53 -04:00
|
|
|
if exists:
|
2018-10-30 23:21:37 -04:00
|
|
|
sys.exit(0)
|
2018-10-04 20:20:53 -04:00
|
|
|
sys.exit(1) # no appropriate dofile found
|