DACT(1)DACT(1)NAMEdact - compress or expand a file or stream
SYNOPSISdact [ -dsfcvlniCHOShVNa ] [-b size] [-e algo] [-m file] [-o file] [-u url]
[-p url] [-M command] [-D desc] [-I algo] [-U file] [-E cipher] [file ...]
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 extension 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, Com‐
pression 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 exist‐
ing 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 statis‐
tics per block.
-l List compression algorithms available.
-n Toggle use of CRCs. This option is especially useful when com‐
bined with the network capabilities of DACT. It allows you to
create a compressed file with only the header pointing to a web
page that contains the real DACT file (which normally has its
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 automati‐
cally extend itself.)
-i Read input from standard input instead of /dev/tty. This is
used to read user supplied information like encryption keys and
passwords from standard input instead of the more appropriate
method of opening "/dev/tty."
-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 dis‐
tributing archives that need only reside on the internet some‐
place.
-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 imple‐
mented 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 sys‐
tem.
-a DACT modules. This option will fetch the latest modules from
the internet and place them in $HOME/.dact/ in a subdirectory
corresponding to your Operating System and CPU Architecture.
-b size
Use the specified block size to compress the file. The size
parameters is in bytes.
-e num 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 file
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 supersede other options.
-o file
Alternate output. This option sends output to a file instead of
INFILE.dct. The file can also be a URL or '-' for standard out.
-u url 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 url 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 val‐
ues 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:
dact-p http://www.rkeene.org/devel/dact/precom‐
piled/dact-@@OSNM@@-@@OSVS@@-@@ARCH@@.bin
dact: http://www.rkeene.org/devel/dact/precompiled/dact-
linux-2.4-i586.bin
-M command
This option executes a command from the command line as if it
appeared in "dact.conf".
-D desc
Encode the description specified into the header of the com‐
pressed file.
-I num Use only 1 algorithm (and uncompressed as a fall-back), useful
if you want to limit yourself to a certain type of compression.
-U file
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 cipher
Enable encryption using the specified algorithm, different algo‐
rithms use different authentication methods.
FILES
$HOME/.dact/
$HOME/.dact/dact.conf
/usr/etc/dact.conf
SEE ALSOgzip(1), bzip2(1), mcrypt(3)AUTHOR
Roy Keene <dact@rkeene.org>
DACT(1)