Thu, 05 Jun 2008 22:00:39 -0400
Add notes about the hg repo.
63 | 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" |
2 | "http://www.w3.org/TR/html4/strict.dtd"> | |
3 | ||
4 | <html><head><title>dtrx: Intelligent archive extraction</title> | |
5 | <link rel="stylesheet" href="common.css"> | |
6 | </head> | |
7 | <body> | |
8 | <h1>dtrx: Intelligent archive extraction</h1> | |
9 | ||
10 | <h2>Introduction</h2> | |
11 | ||
12 | <p><span class="pname">dtrx</span> stands for “Do The Right | |
13 | Extraction.” It's a tool for Unix-like systems that takes all the | |
14 | hassle out of extracting archives. Here's an example of how you use | |
15 | it:</p> | |
16 | ||
17 | <pre>$ dtrx linux-2.6.10.tar.bz2</pre> | |
18 | ||
19 | <p>That's basically the same thing as:</p> | |
20 | ||
21 | <pre>$ tar -jxf linux-2.6.10.tar.bz2</pre> | |
22 | ||
23 | <p>But there's more to it than that. You know those really annoying files | |
24 | that don't put everything in a dedicated directory, and have the | |
25 | permissions all wrong?</p> | |
26 | ||
27 | <pre>$ tar -zvxf random-tarball.tar.gz | |
28 | foo | |
29 | bar | |
30 | data/ | |
31 | data/text | |
32 | $ cd data/ | |
33 | cd: permission denied: data</pre> | |
34 | ||
35 | <p><span class="pname">dtrx</span> takes care of all those problems for | |
36 | you, too:</p> | |
37 | ||
38 | <pre>$ dtrx random-tarball.tar.gz | |
39 | $ cd random-tarball/data | |
40 | $ cat text | |
41 | This all works properly.</pre> | |
42 | ||
43 | <p><span class="pname">dtrx</span> is simple and powerful. Just use the | |
44 | same command for all your archive files, and they'll never frustrate you | |
45 | again.</p> | |
46 | ||
47 | <h2>Features</h2> | |
48 | ||
49 | <ul> | |
50 | ||
51 | <li><strong>Handles many archive types</strong>: You only need to remember | |
52 | one simple command to extract | |
53 | ||
54 | <span class="pname">tar</span>, | |
55 | <span class="pname">zip</span>, | |
56 | <span class="pname">cpio</span>, | |
57 | <span class="pname">deb</span>, | |
58 | <span class="pname">rpm</span>, | |
59 | <span class="pname">gem</span>, | |
60 | <span class="pname">7z</span>, | |
61 | <span class="pname">cab</span>, | |
62 | <span class="pname">gz</span>, | |
63 | <span class="pname">bz2</span>, and | |
64 | <span class="pname">lzma</span> files. | |
65 | ||
66 | If they have any extra compression, like <span | |
67 | class="pname">tar.bz2</span>, <span class="pname">dtrx</span> will take | |
68 | care of that for you, too.</li> | |
69 | ||
70 | <li><strong>Keeps everything organized</strong>: <span | |
71 | class="pname">dtrx</span> will make sure that archives are extracted into | |
72 | their own dedicated directories.</li> | |
73 | ||
74 | <li><strong>Sane permissions</strong>: <span class="pname">dtrx</span> makes | |
75 | sure you can read and write all the files you just extracted, while leaving | |
76 | the rest of the permissions intact.</li> | |
77 | ||
78 | <li><strong>Recursive extraction</strong>: <span class="pname">dtrx</span> can | |
79 | find archives inside the archive and extract those too.</li> | |
80 | ||
81 | </ul> | |
82 | ||
83 | <h2>Download</h2> | |
84 | ||
85 | <p><a href="dtrx-6.0.tar.gz">Download <span class="pname">dtrx</span> | |
86 | 6.0</a>. The SHA1 checksum for this file | |
87 | is <tt>dbe0211c90d6d03035f612fe31f96c825aa75274</tt>. New features in this | |
88 | release include:</p> | |
89 | ||
90 | <ul> | |
91 | ||
92 | <li>When you specify <tt>-v</tt> at the command | |
93 | line, <span class="pname">dtrx</span> will display the files it | |
94 | extracts, much like <span class="pname">tar</span>.</li> | |
95 | ||
96 | <li>When <span class="pname">dtrx</span> prompts you about how to handle | |
97 | recursive archives, you now have the option of listing what those | |
98 | archives before making a decision.</li> | |
99 | ||
100 | <li><span class="pname">dtrx</span> will now provide more information about | |
101 | why a particular extraction attempt failed. It will show you error | |
102 | messages from all the attempts it made, rather than only the last error | |
103 | it got. It will also detect and warn you when one of the underlying | |
104 | extraction tools, like <span class="pname">cabextract</span>, cannot be | |
105 | found.</li> | |
106 | ||
107 | <li><span class="pname">dtrx</span> does a better job of cleaning up after | |
108 | itself. It wouldn't always clean up temporary files after certain | |
109 | errors; that has been fixed. It also catches SIGINT and SIGTERM and | |
110 | cleans up before finishing execution.</li> | |
111 | ||
112 | <li>Version 5.0 introduced a regression such | |
113 | that <span class="pname">dtrx</span> would not offer to extract | |
114 | recursive archives that were hidden under subdirectories. Version 6.0 | |
115 | fixes that.</li> | |
116 | ||
117 | </ul> | |
118 | ||
64
d7b46cae939b
Add notes about the hg repo.
Brett Smith <brett@brettcsmith.org>
parents:
63
diff
changeset
|
119 | <p>If you would like to try the latest development version—or maybe do some |
d7b46cae939b
Add notes about the hg repo.
Brett Smith <brett@brettcsmith.org>
parents:
63
diff
changeset
|
120 | development on it—you can check out the project's <a |
d7b46cae939b
Add notes about the hg repo.
Brett Smith <brett@brettcsmith.org>
parents:
63
diff
changeset
|
121 | href="http://www.selenic.com/mercurial/wiki/">Mercurial</a> repository. A |
d7b46cae939b
Add notes about the hg repo.
Brett Smith <brett@brettcsmith.org>
parents:
63
diff
changeset
|
122 | <a href="http://www.brettcsmith.org/2007/dtrx/dtrx/">web repository</a> is |
d7b46cae939b
Add notes about the hg repo.
Brett Smith <brett@brettcsmith.org>
parents:
63
diff
changeset
|
123 | available, or you can just run:</p> |
d7b46cae939b
Add notes about the hg repo.
Brett Smith <brett@brettcsmith.org>
parents:
63
diff
changeset
|
124 | |
d7b46cae939b
Add notes about the hg repo.
Brett Smith <brett@brettcsmith.org>
parents:
63
diff
changeset
|
125 | <pre>$ hg clone http://www.brettcsmith.org/2007/dtrx/dtrx</pre> |
d7b46cae939b
Add notes about the hg repo.
Brett Smith <brett@brettcsmith.org>
parents:
63
diff
changeset
|
126 | |
63 | 127 | <h2>Requirements</h2> |
128 | ||
129 | <p>If you have Python 2.4 or greater, this should work out of the box. If | |
130 | you're stuck on Python 2.3, you can use this if you install the <a | |
131 | href="http://www.lysator.liu.se/~astrand/popen5/">subprocess module</a>. | |
132 | You'll need the usual tools for the archive types you want to extract: for | |
133 | example, if you're extracting <span class="pname">zip</span> files, you'll | |
134 | need <span class="pname">zipinfo</span> and <span | |
135 | class="pname">unzip</span>.</p> | |
136 | ||
137 | <h2>Installation</h2> | |
138 | ||
139 | <p>You can just put <span class="pname">scripts/dtrx</span> wherever is | |
140 | convenient for you, but if you want to install the program system-wide, you | |
141 | can also run the following command as root or equivalent:</p> | |
142 | ||
143 | <pre>python setup.py install</pre> | |
144 | ||
145 | <p>See the included <tt>INSTALL</tt> file for more information.</p> | |
146 | ||
147 | </body> | |
148 | </html> |