Fri, 19 Oct 2007 23:06:53 -0400
[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.
28
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
1 | We should always extract to a new, temporary directory (except maybe in the |
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
2 | straight decompression case), and then move that directory based on what we |
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
3 | actually want. This has several advantages: |
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
4 | |
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
5 | * Much easier to check whether or not the archive is a bomb (O(1) operation) |
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
6 | * Can find other archives more reliably |
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
7 | * Can set up a direct pipe from a decompressed to the unarchiver, since we're |
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
8 | not interested in reading it multiple times anymore. |
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
9 | * All this should mean x is faster, too. |
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
10 | |
3 | 11 | Things which I have a use case/anti-use case for: |
28
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
12 | * CAB extraction. |
22
b240777ae53e
[svn] Improve the way we check archive contents. If all the entries look like
brett
parents:
18
diff
changeset
|
13 | * Use file to detect the archive type. |
b240777ae53e
[svn] Improve the way we check archive contents. If all the entries look like
brett
parents:
18
diff
changeset
|
14 | * Support lzma compression (http://tukaani.org/lzma/download) |
b240777ae53e
[svn] Improve the way we check archive contents. If all the entries look like
brett
parents:
18
diff
changeset
|
15 | * Support pisi packages (http://paketler.pardus.org.tr/pardus-2007/) |
b240777ae53e
[svn] Improve the way we check archive contents. If all the entries look like
brett
parents:
18
diff
changeset
|
16 | * Steal ideas from <http://martin.ankerl.com/files/e>. |
b240777ae53e
[svn] Improve the way we check archive contents. If all the entries look like
brett
parents:
18
diff
changeset
|
17 | * Figure out what the deal is with strerror. (done?) |
13
0a3ef1b9f6d4
[svn] Add options to tweak the logging level to taste.
brett
parents:
11
diff
changeset
|
18 | * Better error messages (file doesn't exist, isn't readable, etc.) |
18
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
13
diff
changeset
|
19 | * Consistently raise and handle exceptions. |
3 | 20 | |
21 | Things that are generally good: | |
6
77043f4e6a9f
[svn] The big thing here is recursive extraction. Find archive files in the
brett
parents:
5
diff
changeset
|
22 | * Better tests. |
5 | 23 | * Better error messages. |
3 | 24 | |
25 | Things I think might be good but can't prove: | |
28
4d88f2231d33
[svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents:
25
diff
changeset
|
26 | * Take URLs as arguments. |
8
97388f5ff770
[svn] Make ExtractorApplication suck less. Now the strategies for handling
brett
parents:
7
diff
changeset
|
27 | * Consider having options about whether or not to make sane directories, |
97388f5ff770
[svn] Make ExtractorApplication suck less. Now the strategies for handling
brett
parents:
7
diff
changeset
|
28 | have tarbomb protection, etc. |
3 | 29 | * Use zipfile instead of the zip commands. |
30 | * Processing from stdin. | |
6
77043f4e6a9f
[svn] The big thing here is recursive extraction. Find archive files in the
brett
parents:
5
diff
changeset
|
31 | * Extracting control.tar.gz from deb files. |
18
1600807a32bd
[svn] Add basic documentation, and make this version 3.0.
brett
parents:
13
diff
changeset
|
32 | * shar support. |