README

Sat, 28 Apr 2007 23:52:36 -0400

author
brett
date
Sat, 28 Apr 2007 23:52:36 -0400
branch
trunk
changeset 23
039dd321a7d0
parent 19
bb6e9f4af1a5
child 24
60056f3e3e60
permissions
-rw-r--r--

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

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
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
8 supports tar, zip, cpio, rpm, and deb. It can also decompress files
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
9 compressed with gzip, bzip2, 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
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
17 Running dtrx
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
18 ------------
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
19
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
20 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
21 arguments. For example::
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
22
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
23 dtrx coreutils-5.*.tar.gz
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
24
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
25 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
26
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
27 -r, --recursive
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
28 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
29 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
30 well.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
31
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
32 -o, --overwrite
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
33 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
34 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
35 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
36
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
37 -f, --flat
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
38 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
39 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
40 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
41 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
42
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
43 -l, -t, --list, --table
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
44 Don't extract the archives; just list their contents on standard output.
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
45
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
46 -q, --quiet
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
47 Suppress warning messages. Listing this option twice will cause the
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
48 dtrx to be silent if at all possible.
18
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 -v, --verbose
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
51 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
52 to three times for more information.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
53
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
54 --help
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
55 Display basic help.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
56
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
57 --version
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
58 Display x's version, copyright, and license information.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
59
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
60 Other Useful Information
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
61 ------------------------
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
62
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
63 dtrx 4.0 is copyright (c) 2006, 2007 `Brett Smith`_. Feel free to send
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
64 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
65 of dtrx on `its home page`_.
18
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
66
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
67 .. _`Brett Smith`: mailto:brettcsmith@brettcsmith.org
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
68 .. _`its home page`: http://www.brettcsmith.org/2006/x/
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
69
19
bb6e9f4af1a5 [svn] Rename the program to dtrx.
brett
parents: 18
diff changeset
70 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
71 terms of the GNU General Public License as published by the Free Software
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
72 Foundation; either version 2 of the License, or (at your option) any later
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
73 version.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
74
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
75 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
76 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
77 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
78 more details.
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
79
1600807a32bd [svn] Add basic documentation, and make this version 3.0.
brett
parents:
diff changeset
80 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
81 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
82 Franklin Street, 5th Floor, Boston, MA, 02111.

mercurial