README

Fri, 23 Nov 2007 15:22:34 -0500

author
brett
date
Fri, 23 Nov 2007 15:22:34 -0500
branch
trunk
changeset 38
f637b9d24c21
parent 37
c27c1073ec12
child 42
4a4cab75d5e6
permissions
-rw-r--r--

[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.

19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
1 dtrx - Intelligent archive extraction
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
2 =====================================
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
3
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
4 Introduction
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
5 ------------
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
6
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
7 dtrx extracts archives in a number of different formats; it currently
37
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
8 supports tar, zip, cpio, rpm, deb, gem, 7z, and cab files. It can also
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
9 decompress files compressed with gzip, bzip2, lzma, or compress.
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
10
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
11 In addition to providing one command to handle many different archive
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
12 types, dtrx also aids the user by extracting contents consistently. By
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
13 default, everything will be written to a dedicated directory that's named
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
14 after the archive. dtrx will also change the permissions to ensure that the
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
15 owner can read and write all those files.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
16
37
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
17 Requirements
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
18 ------------
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
19
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
20 If you have Python 2.4, this should work out of the box. If you're stuck
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
21 on Python 2.3, you can use this if you install the `subprocess module`_.
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
22 You'll need the usual tools for the archive types you want to extract: for
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
23 example, if you're extracting zip files, you'll need zipinfo and unzip.
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
24
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
25 .. _`subprocess module`: http://www.lysator.liu.se/~astrand/popen5/
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
26
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
27 Installation
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
28 ------------
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
29
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
30 You can just put scripts/dtrx wherever is convenient for you, but if you
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
31 want to install the program system-wide, you can also run::
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
32
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
33 # python setup.py install
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
34
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
35 Running dtrx
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
36 ------------
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
37
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
38 To run dtrx, simply call it with the archive(s) you wish to extract as
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
39 arguments. For example::
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
40
37
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
41 $ dtrx coreutils-5.*.tar.gz
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
42
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
43 dtrx supports a number of options to mandate specific behavior:
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
44
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
45 -r, --recursive
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
46 With this option, dtrx will search inside the archives you specify to see
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
47 if any of the contents are themselves archives, and extract those as
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
48 well.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
49
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
50 -o, --overwrite
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
51 Normally, dtrx will avoid extracting into a directory that already exists,
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
52 and instead try to find an alternative name to use. If this option is
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
53 listed, dtrx will use the default directory name no matter what.
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
54
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
55 -f, --flat
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
56 Extract archive contents into the current directory, instead of their
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
57 own dedicated directory. This is handy if you have multiple archive
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
58 files which all need to be extracted into the same directory structure.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
59 Note that existing files may be overwritten with this option.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
60
24
60056f3e3e60 [svn] Documentation update.
brett
parents: 19
diff changeset
61 -n, --noninteractive
60056f3e3e60 [svn] Documentation update.
brett
parents: 19
diff changeset
62 dtrx will normally ask the user how to handle certain corner cases, such
60056f3e3e60 [svn] Documentation update.
brett
parents: 19
diff changeset
63 as how to handle an archive that only contains one file. This option
37
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
64 suppresses those questions; dtrx will instead use sane, conservative
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
65 defaults.
24
60056f3e3e60 [svn] Documentation update.
brett
parents: 19
diff changeset
66
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
67 -l, -t, --list, --table
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
68 Don't extract the archives; just list their contents on standard output.
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
69
37
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
70 -m, --metadata
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
71 Extract the metadata from .deb and .gem archives, instead of their normal
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
72 contents.
c27c1073ec12 [svn] Documentation update.
brett
parents: 28
diff changeset
73
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
74 -q, --quiet
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
75 Suppress warning messages. Listing this option twice will cause the
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
76 dtrx to be silent if at all possible.
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
77
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
78 -v, --verbose
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
79 Print more information about x's behavior. You can list this option up
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
80 to three times for more information.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
81
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
82 --help
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
83 Display basic help.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
84
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
85 --version
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
86 Display x's version, copyright, and license information.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
87
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
88 Other Useful Information
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
89 ------------------------
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
90
28
4d88f2231d33 [svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents: 24
diff changeset
91 dtrx 5.0 is copyright (c) 2006, 2007 `Brett Smith`_. Feel free to send
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
92 comments, bug reports, patches, and so on. You can find the latest version
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
93 of dtrx on `its home page`_.
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
94
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
95 .. _`Brett Smith`: mailto:brettcsmith@brettcsmith.org
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
96 .. _`its home page`: http://www.brettcsmith.org/2006/x/
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
97
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
98 dtrx is free software; you can redistribute it and/or modify it under the
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
99 terms of the GNU General Public License as published by the Free Software
28
4d88f2231d33 [svn] Change all the license notices from GPLv2 to GPLv3.
brett
parents: 24
diff changeset
100 Foundation; either version 3 of the License, or (at your option) any later
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
101 version.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
102
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
103 This program is distributed in the hope that it will be useful, but WITHOUT
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
104 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
105 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
106 more details.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
107
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
108 You should have received a copy of the GNU General Public License along
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
109 with this program; if not, write to the Free Software Foundation, Inc., 51
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
110 Franklin Street, 5th Floor, Boston, MA, 02111.

mercurial