The only thing in helpers.py that needed vars.py was the log stuff.
So put it in its own file. Now it's safer to import and use helpers even if you can't safely touch vars.
This commit is contained in:
parent
1abaf77d35
commit
e18fa85d58
12 changed files with 72 additions and 69 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
import sys, os, errno, stat
|
import sys, os, errno, stat
|
||||||
import vars, jwack, state
|
import vars, jwack, state
|
||||||
from helpers import log, log_, debug, debug2, err, warn, unlink, close_on_exec
|
from helpers import unlink, close_on_exec
|
||||||
|
from log import log, log_, debug, debug2, err, warn
|
||||||
|
|
||||||
|
|
||||||
def _possible_do_files(t):
|
def _possible_do_files(t):
|
||||||
|
|
|
||||||
50
helpers.py
50
helpers.py
|
|
@ -1,5 +1,5 @@
|
||||||
import sys, os, errno, fcntl
|
import os, errno, fcntl
|
||||||
import vars
|
from atoi import atoi
|
||||||
|
|
||||||
|
|
||||||
def unlink(f):
|
def unlink(f):
|
||||||
|
|
@ -15,52 +15,6 @@ def unlink(f):
|
||||||
pass # it doesn't exist, that's what you asked for
|
pass # it doesn't exist, that's what you asked for
|
||||||
|
|
||||||
|
|
||||||
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))
|
|
||||||
|
|
||||||
def _cerr(s):
|
|
||||||
log_('\x1b[31mredo: %s\x1b[1m%s\x1b[m' % (vars.DEPTH, s))
|
|
||||||
def _bwerr(s):
|
|
||||||
log_('redo: %s%s' % (vars.DEPTH, s))
|
|
||||||
|
|
||||||
def _cwarn(s):
|
|
||||||
log_('\x1b[33mredo: %s\x1b[1m%s\x1b[m' % (vars.DEPTH, s))
|
|
||||||
def _bwwarn(s):
|
|
||||||
log_('redo: %s%s' % (vars.DEPTH, s))
|
|
||||||
|
|
||||||
|
|
||||||
if os.isatty(2):
|
|
||||||
log = _clog
|
|
||||||
err = _cerr
|
|
||||||
warn = _cwarn
|
|
||||||
else:
|
|
||||||
log = _bwlog
|
|
||||||
err = _bwerr
|
|
||||||
warn = _bwwarn
|
|
||||||
|
|
||||||
|
|
||||||
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))
|
|
||||||
def debug3(s):
|
|
||||||
if vars.DEBUG >= 3:
|
|
||||||
log_('redo: %s%s' % (vars.DEPTH, s))
|
|
||||||
|
|
||||||
|
|
||||||
def close_on_exec(fd, yes):
|
def close_on_exec(fd, yes):
|
||||||
fl = fcntl.fcntl(fd, fcntl.F_GETFD)
|
fl = fcntl.fcntl(fd, fcntl.F_GETFD)
|
||||||
fl &= ~fcntl.FD_CLOEXEC
|
fl &= ~fcntl.FD_CLOEXEC
|
||||||
|
|
|
||||||
7
jwack.py
7
jwack.py
|
|
@ -2,7 +2,7 @@
|
||||||
# beware the jobberwack
|
# beware the jobberwack
|
||||||
#
|
#
|
||||||
import sys, os, errno, select, fcntl, signal
|
import sys, os, errno, select, fcntl, signal
|
||||||
import atoi
|
from helpers import atoi, close_on_exec
|
||||||
|
|
||||||
_toplevel = 0
|
_toplevel = 0
|
||||||
_mytokens = 1
|
_mytokens = 1
|
||||||
|
|
@ -83,8 +83,8 @@ def setup(maxjobs):
|
||||||
s = flags[ofs+len(FIND):]
|
s = flags[ofs+len(FIND):]
|
||||||
(arg,junk) = s.split(' ', 1)
|
(arg,junk) = s.split(' ', 1)
|
||||||
(a,b) = arg.split(',', 1)
|
(a,b) = arg.split(',', 1)
|
||||||
a = atoi.atoi(a)
|
a = atoi(a)
|
||||||
b = atoi.atoi(b)
|
b = atoi(b)
|
||||||
if a <= 0 or b <= 0:
|
if a <= 0 or b <= 0:
|
||||||
raise ValueError('invalid --jobserver-fds: %r' % arg)
|
raise ValueError('invalid --jobserver-fds: %r' % arg)
|
||||||
try:
|
try:
|
||||||
|
|
@ -242,7 +242,6 @@ def start_job(reason, jobfunc, donefunc):
|
||||||
finally:
|
finally:
|
||||||
_debug('exit: %d\n' % rv)
|
_debug('exit: %d\n' % rv)
|
||||||
os._exit(rv)
|
os._exit(rv)
|
||||||
from helpers import close_on_exec
|
|
||||||
close_on_exec(r, True)
|
close_on_exec(r, True)
|
||||||
os.close(w)
|
os.close(w)
|
||||||
pd = Job(reason, pid, donefunc)
|
pd = Job(reason, pid, donefunc)
|
||||||
|
|
|
||||||
49
log.py
Normal file
49
log.py
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
import sys, os
|
||||||
|
import vars
|
||||||
|
|
||||||
|
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))
|
||||||
|
|
||||||
|
def _cerr(s):
|
||||||
|
log_('\x1b[31mredo: %s\x1b[1m%s\x1b[m' % (vars.DEPTH, s))
|
||||||
|
def _bwerr(s):
|
||||||
|
log_('redo: %s%s' % (vars.DEPTH, s))
|
||||||
|
|
||||||
|
def _cwarn(s):
|
||||||
|
log_('\x1b[33mredo: %s\x1b[1m%s\x1b[m' % (vars.DEPTH, s))
|
||||||
|
def _bwwarn(s):
|
||||||
|
log_('redo: %s%s' % (vars.DEPTH, s))
|
||||||
|
|
||||||
|
|
||||||
|
if os.isatty(2):
|
||||||
|
log = _clog
|
||||||
|
err = _cerr
|
||||||
|
warn = _cwarn
|
||||||
|
else:
|
||||||
|
log = _bwlog
|
||||||
|
err = _bwerr
|
||||||
|
warn = _bwwarn
|
||||||
|
|
||||||
|
|
||||||
|
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))
|
||||||
|
def debug3(s):
|
||||||
|
if vars.DEBUG >= 3:
|
||||||
|
log_('redo: %s%s' % (vars.DEPTH, s))
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import sys, os
|
import sys, os
|
||||||
import vars, state
|
import vars, state
|
||||||
from helpers import err
|
from log import err
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import sys, os, errno, stat
|
import sys, os, errno, stat
|
||||||
import vars, state, builder, jwack
|
import vars, state, builder, jwack
|
||||||
from helpers import debug, debug2, err, unlink
|
from helpers import unlink
|
||||||
|
from log import debug, debug2, err
|
||||||
|
|
||||||
def _nice(t):
|
def _nice(t):
|
||||||
return state.relpath(os.path.join(vars.BASE, t), vars.STARTDIR)
|
return state.relpath(os.path.join(vars.BASE, t), vars.STARTDIR)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import sys, os
|
import sys, os
|
||||||
import vars, state
|
import vars, state
|
||||||
from helpers import err
|
from log import err
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import sys, os
|
import sys, os
|
||||||
import state
|
import state
|
||||||
from helpers import err
|
from log import err
|
||||||
|
|
||||||
if len(sys.argv[1:]) < 2:
|
if len(sys.argv[1:]) < 2:
|
||||||
err('%s: at least 2 arguments expected.\n' % sys.argv[0])
|
err('%s: at least 2 arguments expected.\n' % sys.argv[0])
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import sys, os
|
import sys, os
|
||||||
import vars, state
|
import vars, state
|
||||||
from helpers import err, debug2
|
from log import err, debug2
|
||||||
|
|
||||||
if len(sys.argv) > 1:
|
if len(sys.argv) > 1:
|
||||||
err('%s: no arguments expected.\n' % sys.argv[0])
|
err('%s: no arguments expected.\n' % sys.argv[0])
|
||||||
|
|
|
||||||
9
redo.py
9
redo.py
|
|
@ -1,6 +1,7 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import sys, os
|
import sys, os
|
||||||
import options, jwack, atoi
|
import options
|
||||||
|
from helpers import atoi
|
||||||
|
|
||||||
optspec = """
|
optspec = """
|
||||||
redo [targets...]
|
redo [targets...]
|
||||||
|
|
@ -57,15 +58,15 @@ if is_root:
|
||||||
os.environ['REDO'] = os.path.abspath(sys.argv[0])
|
os.environ['REDO'] = os.path.abspath(sys.argv[0])
|
||||||
|
|
||||||
|
|
||||||
import vars, state, builder
|
import vars, state, builder, jwack
|
||||||
from helpers import err
|
from log import err
|
||||||
|
|
||||||
|
|
||||||
if is_root:
|
if is_root:
|
||||||
state.init()
|
state.init()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
j = atoi.atoi(opt.jobs or 1)
|
j = atoi(opt.jobs or 1)
|
||||||
if j < 1 or j > 1000:
|
if j < 1 or j > 1000:
|
||||||
err('invalid --jobs value: %r\n' % opt.jobs)
|
err('invalid --jobs value: %r\n' % opt.jobs)
|
||||||
jwack.setup(j)
|
jwack.setup(j)
|
||||||
|
|
|
||||||
6
state.py
6
state.py
|
|
@ -1,7 +1,7 @@
|
||||||
import sys, os, errno, glob, stat, fcntl, sqlite3
|
import sys, os, errno, glob, stat, fcntl, sqlite3
|
||||||
import vars
|
import vars
|
||||||
from helpers import unlink, err, debug2, debug3, close_on_exec
|
from helpers import unlink, close_on_exec
|
||||||
import helpers
|
from log import err, debug2, debug3
|
||||||
|
|
||||||
SCHEMA_VER=1
|
SCHEMA_VER=1
|
||||||
TIMEOUT=60
|
TIMEOUT=60
|
||||||
|
|
@ -97,7 +97,6 @@ def _write(q, l):
|
||||||
return
|
return
|
||||||
global _wrote
|
global _wrote
|
||||||
_wrote += 1
|
_wrote += 1
|
||||||
#helpers.log_('W: %r %r\n' % (q,l))
|
|
||||||
db().execute(q, l)
|
db().execute(q, l)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -106,7 +105,6 @@ def commit():
|
||||||
return
|
return
|
||||||
global _wrote
|
global _wrote
|
||||||
if _wrote:
|
if _wrote:
|
||||||
#helpers.log_("COMMIT (%d)\n" % _wrote)
|
|
||||||
db().commit()
|
db().commit()
|
||||||
_wrote = 0
|
_wrote = 0
|
||||||
|
|
||||||
|
|
|
||||||
6
vars.py
6
vars.py
|
|
@ -1,5 +1,5 @@
|
||||||
import os
|
import os
|
||||||
import atoi
|
from atoi import atoi
|
||||||
|
|
||||||
if not os.environ.get('REDO'):
|
if not os.environ.get('REDO'):
|
||||||
import sys
|
import sys
|
||||||
|
|
@ -10,7 +10,7 @@ if not os.environ.get('REDO'):
|
||||||
PWD = os.environ.get('REDO_PWD', '')
|
PWD = os.environ.get('REDO_PWD', '')
|
||||||
TARGET = os.environ.get('REDO_TARGET', '')
|
TARGET = os.environ.get('REDO_TARGET', '')
|
||||||
DEPTH = os.environ.get('REDO_DEPTH', '')
|
DEPTH = os.environ.get('REDO_DEPTH', '')
|
||||||
DEBUG = atoi.atoi(os.environ.get('REDO_DEBUG', ''))
|
DEBUG = atoi(os.environ.get('REDO_DEBUG', ''))
|
||||||
DEBUG_LOCKS = os.environ.get('REDO_DEBUG_LOCKS', '') and 1 or 0
|
DEBUG_LOCKS = os.environ.get('REDO_DEBUG_LOCKS', '') and 1 or 0
|
||||||
DEBUG_PIDS = os.environ.get('REDO_DEBUG_PIDS', '') and 1 or 0
|
DEBUG_PIDS = os.environ.get('REDO_DEBUG_PIDS', '') and 1 or 0
|
||||||
VERBOSE = os.environ.get('REDO_VERBOSE', '') and 1 or 0
|
VERBOSE = os.environ.get('REDO_VERBOSE', '') and 1 or 0
|
||||||
|
|
@ -18,7 +18,7 @@ XTRACE = os.environ.get('REDO_XTRACE', '') and 1 or 0
|
||||||
KEEP_GOING = os.environ.get('REDO_KEEP_GOING', '') and 1 or 0
|
KEEP_GOING = os.environ.get('REDO_KEEP_GOING', '') and 1 or 0
|
||||||
SHUFFLE = os.environ.get('REDO_SHUFFLE', '') and 1 or 0
|
SHUFFLE = os.environ.get('REDO_SHUFFLE', '') and 1 or 0
|
||||||
STARTDIR = os.environ['REDO_STARTDIR']
|
STARTDIR = os.environ['REDO_STARTDIR']
|
||||||
RUNID = atoi.atoi(os.environ.get('REDO_RUNID')) or None
|
RUNID = atoi(os.environ.get('REDO_RUNID')) or None
|
||||||
BASE = os.environ['REDO_BASE']
|
BASE = os.environ['REDO_BASE']
|
||||||
while BASE and BASE.endswith('/'):
|
while BASE and BASE.endswith('/'):
|
||||||
BASE = BASE[:-1]
|
BASE = BASE[:-1]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue