NAME
	dact - compress or expand a file

SYNOPSIS
	dact [ -dsfcvlnCHOShVN ] [-b size] [-e algo] [-m file] [-u url]
		[-p url] [-D desc] [-I algo] [-U file] [-E cipher]
		[ name ... ]

DESCRIPTION
	Dact  reduces input files by attempting to compress each block
	of the file with several different algorithms and selects the
	best one for each block.

OPTIONS
	-d
		Decompress the file (or stdin, if no file is given), removing
		the extention if it has a valid one.
	-s
		Display statistics about the file, such as:
			Magic number of file
			DACT version file was compressed with
			Block size used to compress file
			Compressed file size
			Original file's size
			Compression ratio (uncompressed to compressed)
			File's original name
			CRCs, if available

	-f
		Force bad and unsafe things to happen.  Can be combined to
		make even worse things happen.  One `-f' allows overwriting of
		existing files, two `-f' allows you to ignore bad magic and
		CRC check fails.

	-c
		Send output to stdout, this will allow you to force DACT to
		send compressed output to a terminal or result of compressing
		a file to a pipe.

	-v
		Increase verbosity, can be combined to increase verbosity a
		lot.  Currently, only up to 3 makes sense.  One `-v' displays
		a bar graph.  Two `-v' displays a bar graph and block
		information.  Three `-v' displays a bar graph and detailed
		compression statistics per block.

	-l
		List compression algorithms available.

	-n
		Toggle use of CRCs.  This option is especially useful when
		combined with the network capabilities of DACT.  It allows
		you to create a compressed file with only the header pointing
		to an web page that contains the real DACT file (which
		normally has it's CRCs checked against the compressed header
		to ensure they're the same file), with this option the files
		do not have to be from the same source (i.e., you can have
		an updated copy automatically extend itself.)

	-C
		Complain when compression errors occur.  When a block is
		selected, it is tested to ensure that it decompresses back
		to the original source.  If it fails, the algorithm is not
		used, with this option you are informed of the failure.

	-H
		Write only header (no data).  This option is useful for
		distributing archives that need only reside on the internet
		someplace.

	-O
		Toggle writing original file name in the DACT header. This
		has no real use that I know of.

	-S
		Use speed-size as a metric rather than size.  This is not
		implemented yet.  This will make DACT create an optimized
		compressed file, balancing speed of decompression with size.

	-h
		Give usage synopsis.

	-V
		Display DACT version.

	-N
		Upgrade DACT.  This option will fetch the latest binary from
		the internet and place it in $HOME/.dact/ as dact.bin.  If
		you have `binary_check on' in your dact.conf file, DACT will
		check for this file and use it.  If you have Debian and run
		`dact -N'   as root the Debian upgrade procedure will upgrade
		your entire system.

	-b
		Use the specified block size to compress the file.  This
		option's parameters is in bytes.

	-e
		Exclude an algorithm from being used.  This option is useful
		if you know your target will not be able to decompress a
		certain algorithm (you can get their numbers from the `-l'
		option.)

	-m
		Load another config file.  This option will attempt to load
		the specified file in addition to the normal files, the
		options in this file will supercede other options.

	-u
		This option will encode an URL in the compressed file's header,
		this URL will be tried (and CRCs checked) before attempting to
		decompress the data in the actual file.

	-p
		URLs in DACT can have variables in them that will be expanded
		when network access is required, this allows you to test the
		results of that extrapolation easily.  Variables and their
		values are:
			@@OSNM@@        OS Name (linux, freebsd, sunos, etc)
			@@OSVR@@        OS version (2.2.x, 4.2, 5.8, etc)
			@@OSVS@@        OS version (short) (2.2, 4.2, 5.8, etc)
			@@ARCH@@        Arch (i386, sparc64, sun4u, sun4m, etc)
			@@DIST@@        If OSNM=Linux, distribution of Linux.
			@@FILE@@        Name of compressed file.
			@@DTVR@@        Version of DACT (maj.min.rev)
			@@DTVS@@        Version of DACT (short) (maj.min)
			@@PASS@@        Prompt for Password
			@@USER@@        Prompt for Username
			@@ATSN@@        Put an `@'
		example:
			[rkeene@new02 compression]$ dact -p http://www.rkeene.org/devel/dact/precompiled/dact-@@OSNM@@-@@OSVS@@-@@ARCH@@.bin
			dact: http://www.rkeene.org/devel/dact/precompiled/dact-linux-2.4-i586.bin

	-D
		Encode the description specified into the header of the
		compressed file.

	-I
		Use only 1 algorithm (and uncompressed as a fall-back), useful
		if you want to limit yourself to a certain type of compression.

	-U
		Encode the specified file into the header of the compressed
		file.  This file will be searched (line-by-line) for a working
		URL to download compressed content from.  See also `-u.'

	-E
		Enable encryption using the specified algorithm, different
		algorithms use different authentication methods.

FILES
	$HOME/.dact/
	$HOME/.dact/dact.conf
	$HOME/.dact/dact.bin
	/usr/etc/dact.conf

SEE ALSO
	gzip(1), bzip2(1), mcrypt(3)

AUTHOR
	Roy Keene <rkeene@rkeene.org>
