atool - Overview
================

atool is a script for managing file archives of various types (tar,
tar+gzip, zip etc). The main command is probably aunpack,
extracting files from an archive. It overcomes the dreaded "multiple
files in archive root" problem by first extracting to a unique
subdirectory, and then moving back the files if possible. aunpack
also prevents local files from being overwritten by mistake.

Other commands provided are apack (create archives), als
(list files in archives), and acat (extract files to standard
out).

atool identifies archives by their file extension. Sometimes this
is not possible, for instance rar archives usually have varying
numeric file extensions. In those cases when atool can't identify
the format, file(1) is used instead. (atool can also be configured
not to use file.)

atool is written in Perl by Oskar Liljeblad (osk@hem.passagen.se),
and is free software (GNU General Public License).

License
=======

atool is copyright (C) 2001  Oskar Liljeblad

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

Requirements
============

The following programs are required for proper operation of atool:

* Perl 5.004 or later
  The modules File::Spec, File::Basename and Getopt::Long must be available.

The following programs are optional:

* file
  A program to determine file types, found in most unices.
  This is necessary unless you choose to disable the
  $::cfg_use_file option.

* tar
  Required if you want to use atool with tar archives.
  Note: See the Installation section below if you don't
  use GNU tar 1.13.18 or later.

* gzip (GNU zip)
  Required if you want to use atool with gzip compressed archives.

* bzip
  Required if you want to use atool with bzip compressed archives

* bzip2
  Required if you want to use atool with bzip2 compressed archives

* Info-ZIP Zip and Unzip
  Required if you want to use atool with zip archives.
  (zip/unzip from other vendors might work as well.)

* Eugene Roshal's RAR archiver
  Required if you want to use atool with rar archives.

Installation
============

Installing atool is a matter of copying the atool file to some
appropriate binary directory, usually /usr/local/bin.
After that, symbolic links for apack, aunpack, als and acat
are created to atool in the same directory.

All this can be done automaticly by running `make install'.

If your Perl binary resides in a different place than /usr/bin/perl,
you need to edit the atool script and update the first line with the
corrent path.

There are some configuration variables in the top of the atool Perl
script that you might want to change, depending on the available
software. It is also possible to create a system wide configuration
file overriding these default values (see below).

Usage and Configuration
=======================

A list of options that atool accepts can be displayed by
running atool with the --help option:
  $ atool --help

Please see the manual page for atool for full usage and
configuration information. This document can usually be
viewed this way:
  $ man ./atool.1
or
  $ man -l atool.1

Homepage
========

The latest version of atool can be downloaded from

  http://www.student.lu.se/~nbi98oli/

Feedback
========

The author of atool and this document, Oskar Liljeblad,
can be reached via email address

  osk@hem.passagen.se
  
Please send bug reports, suggestions, ideas or comments
in general to me - I would like to hear from you if you
like (or don't like) atool. :)

Known bugs
==========

Please see the manual page of atool.

Possible things to do
=====================

Testing & verification 
  * Test on non-GNU systems/with non-GNU tars
  * Verify overriding with --force

Other stuff
  * Internationalization?
++* apack and -e, possible using format specification? (apack -e -F.tar.bz2 */)
+ * Add support for RPM
+ * Add support for DEB
+     list: 	dpkg-deb -c FILE.deb
+     extract:	dpkg-deb -x FILE.deb $outdir/CONTENTS
+		dpkg-deb -e FILE.deb $outdir/DEBIAN
  * Make it possible to send additional arguments to RAR etc.
    engine configurable via command line?
- * Always identify format using `file', ignoring extension?
- * "apack foo.{gz,bz2,bz,Z} file1 file2.." may create problems
-   (merging file1 file2). Warn about it?
- * What happens on Ctrl+C ?
- * Consider:
-     apack dummy.tar.gz /etc/hostname
-     mkdir etc
-     aunpack dummy.tar.gz
-   Archive is now extracted with file as dummy/etc/hostname
-   Should it be dummy/hostname or etc-1/hostname instead?

-
