apenwarr-redo/helpers.py

71 lines
1.4 KiB
Python
Raw Normal View History

import sys, os, errno
import vars
def unlink(f):
"""Delete a file at path 'f' if it currently exists.
Unlike os.unlink(), does not throw an exception if the file didn't already
exist.
"""
try:
os.unlink(f)
except OSError, e:
if e.errno == errno.ENOENT:
pass # it doesn't exist, that's what you asked for
2010-11-12 07:03:06 -08:00
def mkdirp(d, mode=None):
"""Recursively create directories on path 'd'.
Unlike os.makedirs(), it doesn't raise an exception if the last element of
the path already exists.
"""
try:
if mode:
os.makedirs(d, mode)
else:
os.makedirs(d)
except OSError, e:
if e.errno == errno.EEXIST:
pass
else:
raise
def log_(s):
sys.stdout.flush()
if vars.DEBUG_PIDS:
sys.stderr.write('%d %s' % (os.getpid(), s))
else:
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))
2010-11-13 01:21:59 -08:00
def _cerr(s):
log_('\x1b[31mredo: %s\x1b[1m%s\x1b[m' % (vars.DEPTH, s))
2010-11-13 01:21:59 -08:00
def _bwerr(s):
log_('redo: %s%s' % (vars.DEPTH, s))
2010-11-13 01:21:59 -08:00
if os.isatty(2):
log = _clog
2010-11-13 01:21:59 -08:00
err = _cerr
else:
log = _bwlog
2010-11-13 01:21:59 -08:00
err = _bwerr
def debug(s):
if vars.DEBUG >= 1:
log_('redo: %s%s' % (vars.DEPTH, s))
def debug2(s):
if vars.DEBUG >= 2:
log_('redo: %s%s' % (vars.DEPTH, s))