# from David Golden # on Friday 28 August 2009 09:09: >Could have DistGen create a tmp dir that doesn't set CLEANUP and >records initial directory.
It already records the initial directory from chdir_in(). >Then DistGen's DESTROY could chdir to the >original and remove the temp. That keeps it all in DistGen rather >than MBTest. You should be able to call DistGen's remove() from DESTROY. There are some places (like manifypods.t) where the $tmp is reused in later calls to DistGen->new(), but each DistGen object should simply have its own temp dir. It looks like we can nuke this cwd default $options{dir} ||= Cwd::cwd(); And just: $options{dir} ||= $package->tmpdir; But don't rmtree the dir if you didn't create it! -- maybe dir should simply not be an option because we're never using it. >It's not that MBTest's chdir in END is a bad idea, but >I don't like relying on it for DistGen destruction. Yeah. It looks like there are very few places where tmpdir is being used alone (write_default_maniskip.t - but I think even that one should just be done with DistGen.) So, actually I think we can remove the MBTest->tmpdir and that END block entirely once all of the tests stop doing DistGen->new(dir => $tmp). Further, the # cleanup stuff doing $dist->remove at the end can go away too. --Eric -- [...proprietary software is better than gpl because...] "There is value in having somebody you can write checks to, and they fix bugs." --Mike McNamara (president of a commercial software company) --------------------------------------------------- http://scratchcomputing.com ---------------------------------------------------