redo-always/redo-ifcreate/redo-stamp: work inside chdir().
If someone cd's to another directory and then runs redo-always, we weren't adding to the right target.
This commit is contained in:
parent
caea093519
commit
e6f95521ae
6 changed files with 26 additions and 7 deletions
|
|
@ -5,8 +5,10 @@ from log import err
|
|||
|
||||
|
||||
try:
|
||||
me = state.File(name=vars.TARGET)
|
||||
me.add_dep('m', state.ALWAYS)
|
||||
me = os.path.join(vars.STARTDIR,
|
||||
os.path.join(vars.PWD, vars.TARGET))
|
||||
f = state.File(name=me)
|
||||
f.add_dep('m', state.ALWAYS)
|
||||
always = state.File(name=state.ALWAYS)
|
||||
always.stamp = state.STAMP_MISSING
|
||||
always.set_changed()
|
||||
|
|
|
|||
|
|
@ -5,12 +5,14 @@ from log import err
|
|||
|
||||
|
||||
try:
|
||||
me = state.File(name=vars.TARGET)
|
||||
me = os.path.join(vars.STARTDIR,
|
||||
os.path.join(vars.PWD, vars.TARGET))
|
||||
f = state.File(name=me)
|
||||
for t in sys.argv[1:]:
|
||||
if os.path.exists(t):
|
||||
err('redo-ifcreate: error: %r already exists\n' % t)
|
||||
sys.exit(1)
|
||||
else:
|
||||
me.add_dep('c', t)
|
||||
f.add_dep('c', t)
|
||||
except KeyboardInterrupt:
|
||||
sys.exit(200)
|
||||
|
|
|
|||
|
|
@ -33,7 +33,9 @@ csum = sh.hexdigest()
|
|||
if not vars.TARGET:
|
||||
sys.exit(0)
|
||||
|
||||
f = state.File(name=vars.TARGET)
|
||||
me = os.path.join(vars.STARTDIR,
|
||||
os.path.join(vars.PWD, vars.TARGET))
|
||||
f = state.File(name=me)
|
||||
changed = (csum != f.csum)
|
||||
debug2('%s: old = %s\n' % (f.name, f.csum))
|
||||
debug2('%s: sum = %s (%s)\n' % (f.name, csum,
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
echo $$ >>always1.log
|
||||
echo $$
|
||||
cd ..
|
||||
redo-always
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
rm -f always1 always1.log
|
||||
|
||||
redo always1
|
||||
cd ..
|
||||
redo t/always1
|
||||
cd t
|
||||
[ "$(wc -l <always1.log)" -eq 1 ] || exit 11
|
||||
|
||||
# This shouldn't rebuild, but because other people might be running flush-cache.sh
|
||||
|
|
@ -12,3 +14,12 @@ redo always1
|
|||
redo-ifchange always1
|
||||
. ./skip-if-minimal-do.sh
|
||||
[ "$(wc -l <always1.log)" -eq 2 ] || exit 31
|
||||
|
||||
./flush-cache.sh
|
||||
redo-ifchange always1
|
||||
[ "$(wc -l <always1.log)" -eq 3 ] || exit 41
|
||||
|
||||
cd ..
|
||||
./t/flush-cache.sh
|
||||
redo-ifchange t/always1
|
||||
[ "$(wc -l <t/always1.log)" -eq 4 ] || exit 51
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
echo $$ >>stampy.log
|
||||
redo-ifchange inp bob
|
||||
cat inp
|
||||
redo-stamp <inp
|
||||
cd ..
|
||||
redo-stamp <stamp/inp
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue