Merge libdo.py and log.py into helpers.py.
This commit is contained in:
parent
c57de820fb
commit
fc27b19108
5 changed files with 66 additions and 73 deletions
47
helpers.py
47
helpers.py
|
|
@ -1,4 +1,5 @@
|
||||||
import sys, os, errno
|
import sys, os, errno
|
||||||
|
import vars
|
||||||
|
|
||||||
|
|
||||||
def atoi(v):
|
def atoi(v):
|
||||||
|
|
@ -39,3 +40,49 @@ def mkdirp(d, mode=None):
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
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))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def relpath(t, base):
|
||||||
|
t = os.path.abspath(t)
|
||||||
|
tparts = t.split('/')
|
||||||
|
bparts = base.split('/')
|
||||||
|
for tp,bp in zip(tparts,bparts):
|
||||||
|
if tp != bp:
|
||||||
|
break
|
||||||
|
tparts.pop(0)
|
||||||
|
bparts.pop(0)
|
||||||
|
while bparts:
|
||||||
|
tparts.insert(0, '..')
|
||||||
|
bparts.pop(0)
|
||||||
|
return '/'.join(tparts)
|
||||||
|
|
||||||
|
|
||||||
|
def sname(typ, t):
|
||||||
|
# FIXME: t.replace(...) is non-reversible and non-unique here!
|
||||||
|
tnew = relpath(t, vars.BASE)
|
||||||
|
#log('sname: (%r) %r -> %r\n' % (vars.BASE, t, tnew))
|
||||||
|
return vars.BASE + ('/.redo/%s^%s' % (typ, tnew.replace('/', '^')))
|
||||||
|
|
||||||
|
|
||||||
|
def add_dep(t, mode, dep):
|
||||||
|
open(sname('dep', t), 'a').write('%s %s\n' % (mode, dep))
|
||||||
|
|
|
||||||
27
libdo.py
27
libdo.py
|
|
@ -1,27 +0,0 @@
|
||||||
import sys, os
|
|
||||||
import vars
|
|
||||||
|
|
||||||
def relpath(t, base):
|
|
||||||
t = os.path.abspath(t)
|
|
||||||
tparts = t.split('/')
|
|
||||||
bparts = base.split('/')
|
|
||||||
for tp,bp in zip(tparts,bparts):
|
|
||||||
if tp != bp:
|
|
||||||
break
|
|
||||||
tparts.pop(0)
|
|
||||||
bparts.pop(0)
|
|
||||||
while bparts:
|
|
||||||
tparts.insert(0, '..')
|
|
||||||
bparts.pop(0)
|
|
||||||
return '/'.join(tparts)
|
|
||||||
|
|
||||||
|
|
||||||
def sname(typ, t):
|
|
||||||
# FIXME: t.replace(...) is non-reversible and non-unique here!
|
|
||||||
tnew = relpath(t, vars.BASE)
|
|
||||||
#log('sname: (%r) %r -> %r\n' % (vars.BASE, t, tnew))
|
|
||||||
return vars.BASE + ('/.redo/%s^%s' % (typ, tnew.replace('/', '^')))
|
|
||||||
|
|
||||||
|
|
||||||
def add_dep(t, mode, dep):
|
|
||||||
open(sname('dep', t), 'a').write('%s %s\n' % (mode, dep))
|
|
||||||
23
log.py
23
log.py
|
|
@ -1,23 +0,0 @@
|
||||||
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))
|
|
||||||
|
|
@ -2,8 +2,6 @@
|
||||||
import sys, os
|
import sys, os
|
||||||
import vars
|
import vars
|
||||||
from helpers import *
|
from helpers import *
|
||||||
from log import *
|
|
||||||
from libdo import *
|
|
||||||
|
|
||||||
|
|
||||||
def _dirty_deps(t, depth):
|
def _dirty_deps(t, depth):
|
||||||
|
|
|
||||||
40
redo.py
40
redo.py
|
|
@ -1,7 +1,6 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import sys, os, subprocess
|
import sys, os, subprocess
|
||||||
import options
|
import options
|
||||||
from helpers import *
|
|
||||||
|
|
||||||
optspec = """
|
optspec = """
|
||||||
redo [targets...]
|
redo [targets...]
|
||||||
|
|
@ -14,6 +13,25 @@ o = options.Options('redo', optspec)
|
||||||
|
|
||||||
targets = extra or ['it']
|
targets = extra or ['it']
|
||||||
|
|
||||||
|
if opt.debug:
|
||||||
|
os.environ['REDO_DEBUG'] = '1'
|
||||||
|
if opt.verbose:
|
||||||
|
os.environ['REDO_VERBOSE'] = '1'
|
||||||
|
|
||||||
|
if not os.environ.get('REDO_BASE', ''):
|
||||||
|
base = os.path.commonprefix([os.path.abspath(os.path.dirname(t))
|
||||||
|
for t in targets] + [os.getcwd()])
|
||||||
|
bsplit = base.split('/')
|
||||||
|
for i in range(len(bsplit)-1, 0, -1):
|
||||||
|
newbase = '%s/.redo' % '/'.join(bsplit[:i])
|
||||||
|
if os.path.exists(newbase):
|
||||||
|
base = newbase
|
||||||
|
break
|
||||||
|
os.environ['REDO_BASE'] = base
|
||||||
|
|
||||||
|
import vars
|
||||||
|
from helpers import *
|
||||||
|
|
||||||
|
|
||||||
def find_do_file(t):
|
def find_do_file(t):
|
||||||
dofile = '%s.do' % t
|
dofile = '%s.do' % t
|
||||||
|
|
@ -87,26 +105,6 @@ def build(t):
|
||||||
raise Exception('non-zero return code building %r' % t)
|
raise Exception('non-zero return code building %r' % t)
|
||||||
|
|
||||||
|
|
||||||
if opt.debug:
|
|
||||||
os.environ['REDO_DEBUG'] = '1'
|
|
||||||
if opt.verbose:
|
|
||||||
os.environ['REDO_VERBOSE'] = '1'
|
|
||||||
|
|
||||||
if not os.environ.get('REDO_BASE', ''):
|
|
||||||
base = os.path.commonprefix([os.path.abspath(os.path.dirname(t))
|
|
||||||
for t in targets] + [os.getcwd()])
|
|
||||||
bsplit = base.split('/')
|
|
||||||
for i in range(len(bsplit)-1, 0, -1):
|
|
||||||
newbase = '%s/.redo' % '/'.join(bsplit[:i])
|
|
||||||
if os.path.exists(newbase):
|
|
||||||
base = newbase
|
|
||||||
break
|
|
||||||
os.environ['REDO_BASE'] = base
|
|
||||||
|
|
||||||
import vars
|
|
||||||
from log import *
|
|
||||||
from libdo import *
|
|
||||||
|
|
||||||
if not vars.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])]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue