Move log stuff into a separate log.py.
This commit is contained in:
parent
440af04821
commit
63c596ac61
3 changed files with 42 additions and 38 deletions
23
log.py
Normal file
23
log.py
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
import sys, os
|
||||||
|
import vars
|
||||||
|
|
||||||
|
|
||||||
|
def _log(s):
|
||||||
|
sys.stdout.flush()
|
||||||
|
sys.stderr.write(s)
|
||||||
|
sys.stderr.flush()
|
||||||
|
|
||||||
|
|
||||||
|
def _clog(s):
|
||||||
|
_log('\x1b[32mredo: %s\x1b[1m%s\x1b[m' % (vars.DEPTH, s))
|
||||||
|
def _bwlog(s):
|
||||||
|
_log('redo: %s%s' % (vars.DEPTH, s))
|
||||||
|
if os.isatty(2):
|
||||||
|
log = _clog
|
||||||
|
else:
|
||||||
|
log = _bwlog
|
||||||
|
|
||||||
|
|
||||||
|
def debug(s):
|
||||||
|
if vars.DEBUG:
|
||||||
|
_log('redo: %s%s' % (vars.DEPTH, s))
|
||||||
43
redo.py
43
redo.py
|
|
@ -34,29 +34,9 @@ def relpath(t, base):
|
||||||
|
|
||||||
def sname(typ, t):
|
def sname(typ, t):
|
||||||
# FIXME: t.replace(...) is non-reversible and non-unique here!
|
# FIXME: t.replace(...) is non-reversible and non-unique here!
|
||||||
tnew = relpath(t, REDO_BASE)
|
tnew = relpath(t, vars.BASE)
|
||||||
#log('sname: (%r) %r -> %r\n' % (REDO_BASE, t, tnew))
|
#log('sname: (%r) %r -> %r\n' % (vars.BASE, t, tnew))
|
||||||
return REDO_BASE + ('/.redo/%s^%s' % (typ, tnew.replace('/', '^')))
|
return vars.BASE + ('/.redo/%s^%s' % (typ, tnew.replace('/', '^')))
|
||||||
|
|
||||||
|
|
||||||
def _log(s):
|
|
||||||
sys.stdout.flush()
|
|
||||||
sys.stderr.write(s)
|
|
||||||
sys.stderr.flush()
|
|
||||||
|
|
||||||
|
|
||||||
def _clog(s):
|
|
||||||
_log('\x1b[32mredo: %s\x1b[1m%s\x1b[m' % (REDO_DEPTH, s))
|
|
||||||
def _bwlog(s):
|
|
||||||
_log('redo: %s%s' % (REDO_DEPTH, s))
|
|
||||||
if os.isatty(2):
|
|
||||||
log = _clog
|
|
||||||
else:
|
|
||||||
log = _bwlog
|
|
||||||
|
|
||||||
def debug(s):
|
|
||||||
if REDO_DEBUG:
|
|
||||||
_log('redo: %s%s' % (REDO_DEPTH, s))
|
|
||||||
|
|
||||||
|
|
||||||
def add_dep(t, mode, dep):
|
def add_dep(t, mode, dep):
|
||||||
|
|
@ -117,7 +97,7 @@ def dirty_deps(t, depth):
|
||||||
|
|
||||||
def stamp(t):
|
def stamp(t):
|
||||||
stampfile = sname('stamp', t)
|
stampfile = sname('stamp', t)
|
||||||
if not os.path.exists(REDO_BASE + '/.redo'):
|
if not os.path.exists(vars.BASE + '/.redo'):
|
||||||
# .redo might not exist in a 'make clean' target
|
# .redo might not exist in a 'make clean' target
|
||||||
return
|
return
|
||||||
open(stampfile, 'w').close()
|
open(stampfile, 'w').close()
|
||||||
|
|
@ -130,7 +110,7 @@ def stamp(t):
|
||||||
|
|
||||||
def _preexec(t):
|
def _preexec(t):
|
||||||
os.environ['REDO_TARGET'] = t
|
os.environ['REDO_TARGET'] = t
|
||||||
os.environ['REDO_DEPTH'] = REDO_DEPTH + ' '
|
os.environ['REDO_DEPTH'] = vars.DEPTH + ' '
|
||||||
dn = os.path.dirname(t)
|
dn = os.path.dirname(t)
|
||||||
if dn:
|
if dn:
|
||||||
os.chdir(dn)
|
os.chdir(dn)
|
||||||
|
|
@ -152,7 +132,7 @@ def build(t):
|
||||||
f = open(tmpname, 'w+')
|
f = open(tmpname, 'w+')
|
||||||
argv = ['sh', '-e', os.path.basename(dofile),
|
argv = ['sh', '-e', os.path.basename(dofile),
|
||||||
os.path.basename(t), 'FIXME', os.path.basename(tmpname)]
|
os.path.basename(t), 'FIXME', os.path.basename(tmpname)]
|
||||||
if REDO_VERBOSE:
|
if vars.VERBOSE:
|
||||||
argv[1] += 'v'
|
argv[1] += 'v'
|
||||||
log('%s\n' % t)
|
log('%s\n' % t)
|
||||||
rv = subprocess.call(argv, preexec_fn=lambda: _preexec(t),
|
rv = subprocess.call(argv, preexec_fn=lambda: _preexec(t),
|
||||||
|
|
@ -191,9 +171,10 @@ if not os.environ.get('REDO_BASE', ''):
|
||||||
break
|
break
|
||||||
os.environ['REDO_BASE'] = base
|
os.environ['REDO_BASE'] = base
|
||||||
|
|
||||||
from vars import *
|
import vars
|
||||||
|
from log import *
|
||||||
|
|
||||||
if not REDO_DEPTH:
|
if not vars.DEPTH:
|
||||||
# toplevel call to redo
|
# toplevel call to redo
|
||||||
exenames = [os.path.abspath(sys.argv[0]), os.path.realpath(sys.argv[0])]
|
exenames = [os.path.abspath(sys.argv[0]), os.path.realpath(sys.argv[0])]
|
||||||
if exenames[0] == exenames[1]:
|
if exenames[0] == exenames[1]:
|
||||||
|
|
@ -203,11 +184,11 @@ if not REDO_DEPTH:
|
||||||
|
|
||||||
startdir = os.getcwd()
|
startdir = os.getcwd()
|
||||||
for t in targets:
|
for t in targets:
|
||||||
mkdirp('%s/.redo' % REDO_BASE)
|
mkdirp('%s/.redo' % vars.BASE)
|
||||||
os.chdir(startdir)
|
os.chdir(startdir)
|
||||||
|
|
||||||
if REDO_TARGET:
|
if vars.TARGET:
|
||||||
add_dep(REDO_TARGET, opt.ifcreate and 'c' or 'm', t)
|
add_dep(vars.TARGET, opt.ifcreate and 'c' or 'm', t)
|
||||||
if opt.ifcreate:
|
if opt.ifcreate:
|
||||||
pass # just adding the dependency (above) is enough
|
pass # just adding the dependency (above) is enough
|
||||||
elif opt.ifchange:
|
elif opt.ifchange:
|
||||||
|
|
|
||||||
14
vars.py
14
vars.py
|
|
@ -1,9 +1,9 @@
|
||||||
import os
|
import os
|
||||||
|
|
||||||
REDO_TARGET = os.environ.get('REDO_TARGET', '')
|
TARGET = os.environ.get('REDO_TARGET', '')
|
||||||
REDO_DEPTH = os.environ.get('REDO_DEPTH', '')
|
DEPTH = os.environ.get('REDO_DEPTH', '')
|
||||||
REDO_DEBUG = os.environ.get('REDO_DEBUG', '') and 1 or 0
|
DEBUG = os.environ.get('REDO_DEBUG', '') and 1 or 0
|
||||||
REDO_VERBOSE = os.environ.get('REDO_VERBOSE', '') and 1 or 0
|
VERBOSE = os.environ.get('REDO_VERBOSE', '') and 1 or 0
|
||||||
REDO_BASE = os.path.abspath(os.environ['REDO_BASE'])
|
BASE = os.path.abspath(os.environ['REDO_BASE'])
|
||||||
while REDO_BASE.endswith('/'):
|
while BASE.endswith('/'):
|
||||||
REDO_BASE = REDO_BASE[:-1]
|
BASE = BASE[:-1]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue