changelog
- Wed, 13 Jan 2010 19:39:36 +0000
- by Matthew Wild <mwild1@gmail.com> [Wed, 13 Jan 2010 19:39:36 +0000] rev 125
- Add support for fetching archives from URLs
- Sun, 30 Aug 2009 11:55:49 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 30 Aug 2009 11:55:49 -0400] rev 124
- release dtrx 6.6
- Sun, 30 Aug 2009 11:46:30 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 30 Aug 2009 11:46:30 -0400] rev 123
- add support for xz compression
- Sun, 30 Aug 2009 11:18:32 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 30 Aug 2009 11:18:32 -0400] rev 122
- use the PyYAML library for tests, instead of Syck
- Sat, 04 Jul 2009 11:26:19 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sat, 04 Jul 2009 11:26:19 -0400] rev 121
- release dtrx 6.5
- Sat, 04 Jul 2009 11:18:33 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sat, 04 Jul 2009 11:18:33 -0400] rev 120
- add missing tools that you might need for .deb packages
- Sat, 04 Jul 2009 11:11:10 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sat, 04 Jul 2009 11:11:10 -0400] rev 119
- add more metadata for Cheese Shop et al.
- Sat, 04 Jul 2009 10:53:22 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sat, 04 Jul 2009 10:53:22 -0400] rev 118
- consistency nit in header capitalization
- Sat, 04 Jul 2009 10:49:19 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sat, 04 Jul 2009 10:49:19 -0400] rev 117
- convert more copyright symbols
- Sat, 04 Jul 2009 10:47:07 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sat, 04 Jul 2009 10:47:07 -0400] rev 116
- add missing changes to NEWS
- Sat, 04 Jul 2009 10:40:11 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sat, 04 Jul 2009 10:40:11 -0400] rev 115
- Support more .tar.whatever extensions.
These come from Wikipedia's article on tar.
- Sun, 31 May 2009 23:46:10 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 31 May 2009 23:46:10 -0400] rev 114
- use a real UTF-8 copyright symbol everywhere
- Sun, 31 May 2009 23:45:56 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 31 May 2009 23:45:56 -0400] rev 113
- more reformatting for better manpageification
- Sun, 31 May 2009 22:51:00 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 31 May 2009 22:51:00 -0400] rev 112
- Make README more like a man page, so it can be converted into one
- Tue, 05 May 2009 21:04:52 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Tue, 05 May 2009 21:04:52 -0400] rev 111
- add support for LZMA-compressed tar file extensions
- Tue, 05 May 2009 20:31:53 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Tue, 05 May 2009 20:31:53 -0400] rev 110
- Use string.rindex (which is in Python 2.3) instead of my own version.
- Tue, 05 May 2009 20:27:58 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Tue, 05 May 2009 20:27:58 -0400] rev 109
- Don't use str.rindex (not in Python 2.3); instead provide my own cheap version.
- Tue, 05 May 2009 20:14:36 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Tue, 05 May 2009 20:14:36 -0400] rev 108
- Add support for new .deb archives with data.tar.{bz2,lzma}.
We do this just by detecting the compression of the data.tar file at
runtime. The current solution is not exactly elegant but at least avoids
repeating code.
- Sun, 12 Apr 2009 11:22:42 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 12 Apr 2009 11:22:42 -0400] rev 107
- Support multiple greps and antigreps per test.
I thought I would need this for a new test I was writing. It turned out I
ended up implementing different tests (and features), but this could come
in handy for later so I'm keeping it.
- Sun, 12 Apr 2009 11:21:51 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 12 Apr 2009 11:21:51 -0400] rev 106
- Start printing results ASAP with -l or -t.
Doing -l on a large archive was painful because dtrx would wait until it
had all the listings before it displayed any. It did this to make sure
that the listing would be successful.
On reconsidering, though, I think it's really unlikely that there'll be a
case where a lister process provides *some* good output for a given file in
the wrong format. So, now -l will try to get one good line out of the
lister. If it gets that, then it will immediately start displaying results
as they come in. On the off chance that it detects an error later on, it
will display an error about that, and then try again with a different
extractor if appropriate.
- Thu, 02 Apr 2009 22:31:07 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Thu, 02 Apr 2009 22:31:07 -0400] rev 105
- Make sure prompts with filenames don't break mid-filename.
- Wed, 25 Mar 2009 22:58:57 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Wed, 25 Mar 2009 22:58:57 -0400] rev 104
- Added one entry options a while ago.
- Wed, 25 Mar 2009 22:54:13 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Wed, 25 Mar 2009 22:54:13 -0400] rev 103
- Reword one entry prompt; wrap prompt choices; better term size detection.
- Wed, 25 Mar 2009 21:34:55 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Wed, 25 Mar 2009 21:34:55 -0400] rev 102
- add missing test archive
- Thu, 11 Dec 2008 21:37:03 -0500
- by Brett Smith <brettcsmith@brettcsmith.org> [Thu, 11 Dec 2008 21:37:03 -0500] rev 101
- Release dtrx 6.4
- Thu, 11 Dec 2008 21:19:26 -0500
- by Brett Smith <brettcsmith@brettcsmith.org> [Thu, 11 Dec 2008 21:19:26 -0500] rev 100
- Fix crasher bug when extracting empty archives.
- Thu, 06 Nov 2008 21:33:15 -0500
- by Brett Smith <brettcsmith@brettcsmith.org> [Thu, 06 Nov 2008 21:33:15 -0500] rev 99
- Improve wrapping of interactive prompts.
Limit wrapping to the actual width of the terminal, and avoid wrapping the
filename.
- Thu, 06 Nov 2008 20:49:57 -0500
- by Brett Smith <brettcsmith@brettcsmith.org> [Thu, 06 Nov 2008 20:49:57 -0500] rev 98
- Add support for LZMA magic detection.
- Sun, 19 Oct 2008 23:05:00 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 19 Oct 2008 23:05:00 -0400] rev 97
- update sha1sum
- Sun, 19 Oct 2008 22:53:32 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 19 Oct 2008 22:53:32 -0400] rev 96
- merge extractor contents bugfix
- Sun, 19 Oct 2008 22:50:47 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 19 Oct 2008 22:50:47 -0400] rev 95
- Include the NEWS file in source distributions
- Sun, 19 Oct 2008 22:47:59 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 19 Oct 2008 22:47:59 -0400] rev 94
- Avoid DeprecationWarning under Python 2.6. Part of the 6.3 release.
- Sun, 19 Oct 2008 22:42:20 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 19 Oct 2008 22:42:20 -0400] rev 93
- Prepare for a 6.3 release
- Sun, 19 Oct 2008 22:20:50 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 19 Oct 2008 22:20:50 -0400] rev 92
- Add RAR support. Thanks to Peter Kelemen for the patch.
- Tue, 16 Sep 2008 21:51:59 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Tue, 16 Sep 2008 21:51:59 -0400] rev 91
- Make sure all extractors get self.contents defined.
self.contents was set in check_contents, which not every extractor class
needs to call. But every extractor needs to have it, since this is how we
print filenames with -v. So assign this in the extract method, which we're
guaranteed to call.
- Sat, 26 Jul 2008 13:02:53 -0400
- by Brett Smith <brett@brettcsmith.org> [Sat, 26 Jul 2008 13:02:53 -0400] rev 90
- Fix TODO merge conflicts, I hope.
- Sat, 26 Jul 2008 12:55:37 -0400
- by Brett Smith <brett@brettcsmith.org> [Sat, 26 Jul 2008 12:55:37 -0400] rev 89
- Release 6.2
- Thu, 10 Jul 2008 21:00:51 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 10 Jul 2008 21:00:51 -0400] rev 88
- Update TODO
- Thu, 24 Jul 2008 22:49:03 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Thu, 24 Jul 2008 22:49:03 -0400] rev 87
- Tidy: no need to import glob anymore.
- Thu, 24 Jul 2008 22:46:27 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Thu, 24 Jul 2008 22:46:27 -0400] rev 86
- Be more careful on SIGINT/SIGKILL cleanup.
Don't blow away .dtrx-*, instead look for our specific extraction directory
and delete that.
- Thu, 24 Jul 2008 22:35:38 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Thu, 24 Jul 2008 22:35:38 -0400] rev 85
- Use the default action for SIGPIPE.
Using Python's built-in handler makes weird error messages for the user,
and there's no reason not to act like every other Unix program in this
regard. This seems particularly true since we're most likely to get
SIGPIPE with dtrx -l, where we won't write things to disk etc.
- Thu, 24 Jul 2008 22:15:19 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Thu, 24 Jul 2008 22:15:19 -0400] rev 84
- Add --one-entry option to specify default handling for one-entry archives.
As part of this I ended up cleaning up the option-generating code a little
bit, mostly to be more careful about the ordering of options in --help
output.
- Wed, 23 Jul 2008 12:15:45 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Wed, 23 Jul 2008 12:15:45 -0400] rev 83
- Use the --quiet option for cpio -t too.
- Wed, 23 Jul 2008 12:01:58 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Wed, 23 Jul 2008 12:01:58 -0400] rev 82
- Stop worrying about trailing newlines in get_filenames() overrides.
Now that all the get_filenames implementations call out to the original,
which takes care of the trailing newline, we don't need to keep doing it in
other methods.
- Sun, 20 Jul 2008 22:24:49 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 20 Jul 2008 22:24:49 -0400] rev 81
- Move most ExtractorBuilder constants to the top.
This actually makes the code a little longer, but it's much more organized:
whenever a new extractor is added, you just have to add one entry to
extractor_map accordingly.
- Sun, 20 Jul 2008 21:39:39 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 20 Jul 2008 21:39:39 -0400] rev 80
- Move more common extraction/listing functionality into BaseExtractor.
I noticed that a lot of the extract_archive/get_filenames implementations
were the same two lines of code: a pipe and a run_pipes. Short as it is,
there's no reason to keep repeating that two-line incantation, so I moved
this basic pattern into BaseExtractor.
- Sun, 20 Jul 2008 21:16:08 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 20 Jul 2008 21:16:08 -0400] rev 79
- Improve dtrx -l performance on misnamed files, and clean other error messages.
dtrx -l would only ever try one extractor, instead of trying all possible
alternaitves like it did when extracting. This is mostly because
get_filenames() reported no meaningful error information. This has been
fixed.
Some error messages have been genericized, since we're not always
extracting archives: we might be listing their contents instead.
- Sun, 20 Jul 2008 20:45:54 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 20 Jul 2008 20:45:54 -0400] rev 78
- Don't show errors from failed extractors unless they all fail.
If dtrx has to try different extractors before finding and using the right
one, the user shouldn't see error messages from the failed extractors;
those are just confusing. Just like the Application decides whether to say
particular extractors failed at all, this patch makes it also decide
whether or not to show the stderr from those extractors.
- Sun, 20 Jul 2008 20:25:54 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 20 Jul 2008 20:25:54 -0400] rev 77
- Clean the target directory if an extraction attempt failed.
- Tue, 15 Jul 2008 22:18:03 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Tue, 15 Jul 2008 22:18:03 -0400] rev 76
- Give extraction stderr more context, and suppress normal cpio stderr junk.
cpio will write a useless "N blocks" message to stderr without --quiet, so
use that.
When we show extraction's stderr to the user, first write a line explaining
what it is, and also don't forget to strip the trailing newline, since
.warning() writes its own.
- Sun, 13 Jul 2008 18:11:08 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 13 Jul 2008 18:11:08 -0400] rev 75
- Update for 6.1, plus some tweaks here and there.
- Sun, 13 Jul 2008 18:01:04 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 13 Jul 2008 18:01:04 -0400] rev 74
- Updates for 6.1 release.
- Sun, 13 Jul 2008 17:54:47 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 13 Jul 2008 17:54:47 -0400] rev 73
- Don't assume .exe files are Cabinet archives just by extension.
.exe files are as likely as not to be archives, so I'd rather not bug the
user for recursive extraction every time they're in an archive. So we'll
detect these sorts of archives by their magic only, which prevents them
from triggering recursive extraction attempts.
- Sun, 13 Jul 2008 17:47:57 -0400
- by Brett Smith <brettcsmith@brettcsmith.org> [Sun, 13 Jul 2008 17:47:57 -0400] rev 72
- Add support for InstallShield archives.
- Thu, 10 Jul 2008 20:55:09 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 10 Jul 2008 20:55:09 -0400] rev 71
- Recurse better when the contents were just one file.
- Thu, 10 Jul 2008 20:09:12 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 10 Jul 2008 20:09:12 -0400] rev 70
- Tweak wording of recursion question, and TODO.
- Thu, 10 Jul 2008 19:51:53 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 10 Jul 2008 19:51:53 -0400] rev 69
- Count files in the archive and report that in the recursion prompt.
I like this because, for example, if you see that all or most of the files
in the archive are recursive, you can go ahead and decide to recurse right
away.
This invoved making the grep tests a little smarter about handling white
space.
- Thu, 10 Jul 2008 19:31:23 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 10 Jul 2008 19:31:23 -0400] rev 68
- more TODO updates
- Thu, 10 Jul 2008 18:48:09 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 10 Jul 2008 18:48:09 -0400] rev 67
- Update TODO: remove complete tasks, add new items.
- Thu, 10 Jul 2008 18:44:06 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 10 Jul 2008 18:44:06 -0400] rev 66
- Don't prompt for one entry handling with -f.
-f makes the answer to the "what do you want to do with this one file"
question clear, so the user shouldn't be asked for the answer.
- Thu, 05 Jun 2008 22:54:10 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 05 Jun 2008 22:54:10 -0400] rev 65
- Make the wording on the One Entry question a little clearer.
Unfortunately I now realize that things don't really work when your archive
just contains one *file*, so I'll have to address that later.
- Thu, 05 Jun 2008 22:00:39 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 05 Jun 2008 22:00:39 -0400] rev 64
- Add notes about the hg repo.
- Thu, 05 Jun 2008 21:44:38 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 05 Jun 2008 21:44:38 -0400] rev 63
- add web site to hg repo
- Thu, 05 Jun 2008 21:24:44 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 05 Jun 2008 21:24:44 -0400] rev 62
- Deal with partially extracted tarballs.
If you can only extract part of a tarball -- for example, because it
includes nodes and you're not root -- tar will extract what it can but give
an error code. So now dtrx will only fail if some subprogram threw an
error code *and* nothing actually got extracted. Otherwise, we'll show
whatever errors came up, but we'll still assume the extraction was as
successful as it's going to be.
- Thu, 05 Jun 2008 10:00:38 -0400
- by Brett Smith <brett@brettcsmith.org> [Thu, 05 Jun 2008 10:00:38 -0400] rev 61
- update TODO
- Wed, 30 Apr 2008 21:33:30 -0400
- by Brett Smith <brett@brettcsmith.org> [Wed, 30 Apr 2008 21:33:30 -0400] rev 60
- Add missing test tarballs
- Wed, 06 Feb 2008 19:38:26 -0500
- by brett [Wed, 06 Feb 2008 19:38:26 -0500] rev 59
- [svn] Find self-extracting archives by their file magic only, not extension/mimetype.
The problem with using extensions/mimetypes for this is that it net way too
many false positives. Files ending in .com, .bat, etc. would cause the
user to be prompted for recursive extraction. This makes that problem go
away, and it means that error messages when the user tries to extract a
non-archive .exe will probably be more useful, too.
- Sun, 20 Jan 2008 15:32:02 -0500
- by brett [Sun, 20 Jan 2008 15:32:02 -0500] rev 58
- [svn] Steel FilenameChecker against race conditions.
Since FilenameChecker was just using os.path.exists() to see whether or not
a filename was free, it had a time of check vs. time of use vulnerability.
Matthew was prodding me about the inconsistency with DirectoryChecker, so
that inspired me to fix this. This also entailed some refactoring. Thanks
Matthew.
- Sun, 20 Jan 2008 13:42:48 -0500
- by brett [Sun, 20 Jan 2008 13:42:48 -0500] rev 57
- [svn] Add note about needing syck.
- Sun, 20 Jan 2008 13:39:04 -0500
- by brett [Sun, 20 Jan 2008 13:39:04 -0500] rev 56
- [svn] Add NEWS, and other documentation updates.
- Sun, 20 Jan 2008 12:15:55 -0500
- by brett [Sun, 20 Jan 2008 12:15:55 -0500] rev 55
- [svn] Stupid Python 2.3 doesn't support [].sort(reverse=True).
- Sun, 20 Jan 2008 12:05:14 -0500
- by brett [Sun, 20 Jan 2008 12:05:14 -0500] rev 54
- [svn] Update copyright dates in the license headers.
- Sun, 20 Jan 2008 12:00:35 -0500
- by brett [Sun, 20 Jan 2008 12:00:35 -0500] rev 53
- [svn] Add interactive option to list recursive archives when found.
I'm not really wild about how this is built but since it's a one-off I'm
not sure what a better infrastructure would look like yet.
Also add a test for a -fv combo while I was in there.
- 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.
- Sat, 10 Feb 2007 20:43:00 -0500
- by brett [Sat, 10 Feb 2007 20:43:00 -0500] rev 20
- [svn] If the archive contains one directory with the "wrong" name, ask the user
what they want to do to extract it.
Also add a switch to prevent being asked this question, for use in scripts
and the like.
- Sat, 10 Feb 2007 16:43:44 -0500
- by brett [Sat, 10 Feb 2007 16:43:44 -0500] rev 19
- [svn] Rename the program to dtrx.
Add a -l/-t option, which just lists the contents of an archive without
extracting anything.
- Tue, 02 Jan 2007 20:30:17 -0500
- by brett [Tue, 02 Jan 2007 20:30:17 -0500] rev 18
- [svn] Add basic documentation, and make this version 3.0.
- Sun, 31 Dec 2006 19:29:46 -0500
- by brett [Sun, 31 Dec 2006 19:29:46 -0500] rev 17
- [svn] Lots of tests for various boundary cases, and slightly better handling for
some of them.
- Sun, 31 Dec 2006 19:27:23 -0500
- by brett [Sun, 31 Dec 2006 19:27:23 -0500] rev 16
- [svn] There's now an entirely new object hierarchy for handlers, because the
number of corner cases, switches, etc. was starting to get out of hand.
This makes it easier to tell what's going on in a given case.
- Sun, 31 Dec 2006 19:25:16 -0500
- by brett [Sun, 31 Dec 2006 19:25:16 -0500] rev 15
- [svn] Add a -f/--flat option, which will extract the archive contents into the
current directory, rather than a dedicated subdirectory.
- Sun, 31 Dec 2006 19:20:26 -0500
- by brett [Sun, 31 Dec 2006 19:20:26 -0500] rev 14
- [svn] Add support for just decompressing files that are compressed. So, if you
have foobar.txt.gz, running x on it will give you foobar.txt.
I also moved the test definitions to a YAML file, which makes them easier
to write and understand. Hopefully.
- Tue, 19 Dec 2006 19:27:14 -0500
- by brett [Tue, 19 Dec 2006 19:27:14 -0500] rev 13
- [svn] Add options to tweak the logging level to taste.
- Tue, 19 Dec 2006 19:13:29 -0500
- by brett [Tue, 19 Dec 2006 19:13:29 -0500] rev 12
- [svn] Introduce a real logging system. Right now all this really gets us is the
return of warnings when BombHandler has to use an unusual extraction
directory, but it can grow from here.
- Tue, 19 Dec 2006 18:01:00 -0500
- by brett [Tue, 19 Dec 2006 18:01:00 -0500] rev 11
- [svn] This is version 2.0 because I said so.
- Sun, 17 Dec 2006 09:20:02 -0500
- by brett [Sun, 17 Dec 2006 09:20:02 -0500] rev 10
- [svn] Add tests for the case where we do recursive extraction of an archive
that's not in the current working directory, and fix the associated bug.
- Sun, 17 Dec 2006 08:30:32 -0500
- by brett [Sun, 17 Dec 2006 08:30:32 -0500] rev 9
- [svn] Fix issues with basename methods. First, string's rsplit method only
arrived in Python 2.4, so don't use it. Second, tweak the RPM basename
method to catch the case where arch == noarch.
- Mon, 13 Nov 2006 23:06:30 -0500
- by brett [Mon, 13 Nov 2006 23:06:30 -0500] rev 8
- [svn] Make ExtractorApplication suck less. Now the strategies for handling
different archive types are out in their own classes, and polymorphism
takes care of everything for us. This is way cleaner.
While I was at it I changed the behavior in the case where an archive
contains one directory that doesn't match the basename. I now treat that
the same as a bomb. This can lead to silly directory structures but
ensures that there's no "data" loss nor unexpected results.
- Sat, 11 Nov 2006 18:42:19 -0500
- by brett [Sat, 11 Nov 2006 18:42:19 -0500] rev 7
- [svn] Add a test for recursive extraction which also makes sure that we fix
permissions after we extract the archive, and DTRT when an archive contains
one file. Add code to handle the latter two cases.
ExtractorApplication is a total mess at this point. I already am having a
hard time following how the pieces fit together. Cleaning it up is my next
task; that'll be easier now that I test most of the functionality again.
- Mon, 06 Nov 2006 22:36:47 -0500
- by brett [Mon, 06 Nov 2006 22:36:47 -0500] rev 6
- [svn] The big thing here is recursive extraction. Find archive files in the
thing we're extracting, and extract those when we're done, if the user
provides the -r option. While I was at it:
* --help/--version switches too.
* Throw a more useful error if we get a weird encoding.
* Some other small fix I'm forgetting.
I should definitely add tests for this. I also really want to step back
and reevaluate the structure of ExtractorApplication. I don't expect it to
be a shining example of good OO anyway, but it's getting moderately hairy
now, with lots of shared state and side effects and stuff.
- Sat, 04 Nov 2006 10:34:06 -0500
- by brett [Sat, 04 Nov 2006 10:34:06 -0500] rev 5
- [svn] Deal with a bunch of low-hanging fruit:
* Correctly cope with mimetype oddities I found on Fedora.
* I'm not doing anything with shar files yet, so take out that hook.
* Better error handling and reporting throughout, including a meaningful
exit code.
* Remove unused cruft from the BaseExtractor.run method.
* When reporting the "basename" for the archive, make sure it doesn't
include any preceding path.
* If the archive contains one directory whose name doesn't match the
archive basename, rename it after extraction.
- Although I just realized this probably does the wrong thing if there's
just one file in the archive.
- Wed, 01 Nov 2006 22:03:46 -0500
- by brett [Wed, 01 Nov 2006 22:03:46 -0500] rev 4
- [svn] Additions.
- Tue, 31 Oct 2006 19:31:44 -0500
- by brett [Tue, 31 Oct 2006 19:31:44 -0500] rev 3
- [svn] Ideas off the top of my head.
- Sun, 29 Oct 2006 20:03:12 -0500
- by brett [Sun, 29 Oct 2006 20:03:12 -0500] rev 2
- [svn] Fix a small bug that would crash the program if an archive was empty.
Make basename calculation more robust.
Go ahead and run .exe files through the ZipExtractor. Need to cope more
gracefully when it doesn't work, but I've lost momentum for tonight.
- Sun, 29 Oct 2006 19:34:46 -0500
- by brett [Sun, 29 Oct 2006 19:34:46 -0500] rev 1
- [svn] Repository reorganization to make tags easy
- Sun, 29 Oct 2006 19:31:27 -0500
- by brett [Sun, 29 Oct 2006 19:31:27 -0500] rev 0
- [svn] Repository reorganization