changelog
- Sun, 20 Jan 2008 11:10:48 -0500
- by brett [Sun, 20 Jan 2008 11:10:48 -0500] rev 52
- [svn] Make just one -v print a list of filenames, a la tar.
- Sun, 20 Jan 2008 09:47:33 -0500
- by brett [Sun, 20 Jan 2008 09:47:33 -0500] rev 51
- [svn] Don't try to rmtree when overwriting just a file.
- Sun, 20 Jan 2008 09:22:13 -0500
- by brett [Sun, 20 Jan 2008 09:22:13 -0500] rev 50
- [svn] Run the cleanup script after the test even if there's no more comparing to do.
- Sun, 20 Jan 2008 04:02:19 -0500
- by brett [Sun, 20 Jan 2008 04:02:19 -0500] rev 49
- [svn] Add a traceback when we catch a signal.
- Sun, 20 Jan 2008 03:53:02 -0500
- by brett [Sun, 20 Jan 2008 03:53:02 -0500] rev 48
- [svn] Handle SIGINT and SIGKILL.
This prevents us from spewing a traceback. We also make one last-ditch
effort to clean up any temporary stuff so it doesn't hog the user's disk.
Also made some aesthetic changes: replace the last instance of run-command
with shutil.rmtree, so the whole function's gone now. Also call it set
instead of Set.
- Sun, 20 Jan 2008 01:59:42 -0500
- by brett [Sun, 20 Jan 2008 01:59:42 -0500] rev 47
- [svn] Fix various bugs in the recursive extraction.
First, 5.0 introduced a regression where it wouldn't find archives hidden
in subdirectories. So fix that.
Then recursive extraction would get confused if the archive was a ONE_ENTRY
and we decided to wrap it or just extract it here. Fix that too: the
extractor keeps track of where it thinks it's extracting to, and then the
handler will change that if necessary.
There are unit tests for all this.
I twiddled some other small thing while I was at it but now I forget what.
- Thu, 17 Jan 2008 22:44:46 -0500
- by brett [Thu, 17 Jan 2008 22:44:46 -0500] rev 46
- [svn] Make dtrx -v print *something*.
paulv wants it to act like tar -v. I'm not yet convinced this is a good
idea because it makes less sense with dtrx moving things around on you. It
could do an ls for you, of course, but... why? But it definitely is weird
to have it be silent.
- Thu, 17 Jan 2008 22:36:07 -0500
- by brett [Thu, 17 Jan 2008 22:36:07 -0500] rev 45
- [svn] At work I was getting an unhelpful "No such file or directory" error when I
tried to extract an .exe. It turns out this was because I didn't have
cabextract installed. This inspired a few changes:
* BaseExtractor now raises an ExtractorUnusable error when this happens.
* Various points in the code deal with this properly.
* The loop for trying extractors will now report all the errors it got, if
extraction is unsuccessful, to better help you understand why.
Also snuck in a bug fix where things weren't being cleaned properly with a
half-extracted archive.
Also got my version number situation in order, in anticipation for the next
release, which may be a while yet but at least I won't have to worry about
it then.
- Tue, 27 Nov 2007 22:43:40 -0500
- by brett [Tue, 27 Nov 2007 22:43:40 -0500] rev 44
- [svn] Missed a couple of spots.
- Tue, 27 Nov 2007 22:04:04 -0500
- by brett [Tue, 27 Nov 2007 22:04:04 -0500] rev 43
- [svn] Sadly Python 2.3 does not have an rsplit method on strings.
- Mon, 26 Nov 2007 22:39:29 -0500
- by brett [Mon, 26 Nov 2007 22:39:29 -0500] rev 42
- [svn] Update documentation.
- Mon, 26 Nov 2007 22:31:25 -0500
- by brett [Mon, 26 Nov 2007 22:31:25 -0500] rev 41
- [svn] Minor clean-ups. The most important of these is that we now have a better
strategy for dealing with the pathological case of having many extraction
destinations taken: after trying various names with number suffixes, we'll
finally resort to mkstemp/mkdtemp to get what we need. This still isn't
guaranteed to work but it's much more reliable. Also print out a warning
for the user when we extract to some weird directory.
- Fri, 23 Nov 2007 17:55:07 -0500
- by brett [Fri, 23 Nov 2007 17:55:07 -0500] rev 40
- [svn] Be a little nicer about explaining that we can't extract to the current
directory.
- Fri, 23 Nov 2007 16:25:22 -0500
- by brett [Fri, 23 Nov 2007 16:25:22 -0500] rev 39
- [svn] Improve the error reporting to be more user-friendly, at least in many of
the really basic cases.
- Fri, 23 Nov 2007 15:22:34 -0500
- by brett [Fri, 23 Nov 2007 15:22:34 -0500] rev 38
- [svn] Some more tests to make sure we always do the right thing in the
archive-with-one-file case. Also be a little more thorough in our cleanup.
- Fri, 23 Nov 2007 11:59:27 -0500
- by brett [Fri, 23 Nov 2007 11:59:27 -0500] rev 37
- [svn] Documentation update.
- Fri, 23 Nov 2007 11:33:30 -0500
- by brett [Fri, 23 Nov 2007 11:33:30 -0500] rev 36
- [svn] Small optimization to be nice to the system: don't try a given extractor
more than once.
- Fri, 23 Nov 2007 11:24:58 -0500
- by brett [Fri, 23 Nov 2007 11:24:58 -0500] rev 35
- [svn] Add support for extracting CAB archives. Because the CAB archive I was
testing on had a single file in it, I fonud a bunch of bugs related to
extracting one file (as opposed to one directory) here, and squashed those
in the process.
- Thu, 22 Nov 2007 22:37:40 -0500
- by brett [Thu, 22 Nov 2007 22:37:40 -0500] rev 34
- [svn] Add support for LZMA compression. Holy crap that was easy.
- Thu, 22 Nov 2007 22:24:04 -0500
- by brett [Thu, 22 Nov 2007 22:24:04 -0500] rev 33
- [svn] Fix some bugs and make things a little more user-friendly now that we can
try multiple extractors per file. Add some logging as part of this. I'm
probably still not done -- heck, dtrx has never really been user-friendly
enough -- but at least now it's not ridiculous.
- Thu, 22 Nov 2007 22:21:34 -0500
- by brett [Thu, 22 Nov 2007 22:21:34 -0500] rev 32
- [svn] Oops, finish adding 7z support.
- Thu, 22 Nov 2007 22:20:39 -0500
- by brett [Thu, 22 Nov 2007 22:20:39 -0500] rev 31
- [svn] Refactor actions (extract the archive, vs. list the contents) into their
own classes, instead of having all that in the Application class. Also did
some similar fidgeting with the ExtractorBuilder. I like this better.
It's still not the cleanest API but things feel more manageable now.
Add 7z support.
- Fri, 19 Oct 2007 23:06:53 -0400
- by brett [Fri, 19 Oct 2007 23:06:53 -0400] rev 30
- [svn] If we can't figure out what the file is by mimetype, try using the file
command to figure out what it is instead.
This completely changes the program structure because now we might try to
use several extractors on a particular file before giving up. I haven't
really done the refactoring that would be appropriate for a change this
fundamental. I'd like to do that before the next release.
- Fri, 19 Oct 2007 23:03:17 -0400
- by brett [Fri, 19 Oct 2007 23:03:17 -0400] rev 29
- [svn] Add support for Ruby Gems, and extracting metadata from .deb/.gem files.
- Fri, 19 Oct 2007 22:46:20 -0400
- by brett [Fri, 19 Oct 2007 22:46:20 -0400] rev 28
- [svn] Change all the license notices from GPLv2 to GPLv3.
Instead of checking the archive contents, figuring out what to do, and
doing it, instead we now always extract the archive to a private directory,
and then shuffle around the contents appropriately. I expected this to be
a bigger win than my benchmarks have borne out, but I'm sticking with this
strategy because it provides a cleaner separation of responsibilities
between the extractors and the archive type handlers, and also I have to
believe it's a much better way to handle bigger archives -- since we're now
reading it once and not twice.
- Sun, 29 Apr 2007 15:30:01 -0400
- by brett [Sun, 29 Apr 2007 15:30:01 -0400] rev 27
- [svn] Really small cleanliness bit.
- Sun, 29 Apr 2007 15:25:04 -0400
- by brett [Sun, 29 Apr 2007 15:25:04 -0400] rev 26
- [svn] Little DRY cleanups.
- Sun, 29 Apr 2007 15:12:02 -0400
- by brett [Sun, 29 Apr 2007 15:12:02 -0400] rev 25
- [svn] Move policy-handling code into a dedicated set of classes. This makes
question construction at least moderately cleaner, and more importantly, it
gets it out of the main application class, where it was bugging me.
- Sun, 29 Apr 2007 13:29:50 -0400
- by brett [Sun, 29 Apr 2007 13:29:50 -0400] rev 24
- [svn] Documentation update.
- Sat, 28 Apr 2007 23:52:36 -0400
- by brett [Sat, 28 Apr 2007 23:52:36 -0400] rev 23
- [svn] If an archive contains other archives, and the user didn't specify that
they wanted recursion, prompt them to find out what they want to do.
This required some changes in the way prompting for one-item archives works
too, because if an archive inside another archive is itself a one-item
archive, things get really weird. I'm still not really sure what the right
policy is for that.
I'm not wild about this code. It feels like programming a bunch of special
cases. I need to figure out a better way to abstract it. I'm thinking
some kind of Policy class....
- Sat, 21 Apr 2007 13:09:58 -0400
- by brett [Sat, 21 Apr 2007 13:09:58 -0400] rev 22
- [svn] Improve the way we check archive contents. If all the entries look like
they're in ., they really shouldn't count as being in the same directory;
look at the next piece of the path. If the archive only has one
non-directory item, report that more clearly. You'll be able to tell by
whether or not there's a trailing slash in the prompt.
Improve the tests for doing straight decompression, and seek to the
beginning of the archive before we start writing to the file -- otherwise,
we write 0-byte files.
Lots of new ideas in the TODO. I think I'll do another release once
recursion is interactive.
- Sat, 21 Apr 2007 10:22:32 -0400
- by brett [Sat, 21 Apr 2007 10:22:32 -0400] rev 21
- [svn] Do some tests with a .tar.bz2 as well as a .tar.gz. I thought there were
some bugs with this that I found when using dtrx, but I can't reproduce
them this way, so I guess I'll have to investigate further. In the
meantime, they can't hurt.