DACT(1)                                                   DACT(1)



NAME
       dact - compress or expand a file or stream

SYNOPSIS
       dact  [  -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, Compression  ratio
              (uncompressed to compressed), File's original name,
              CRCs (if available).

       -f     Force bad and unsafe things to happen.  Can be com-
              bined  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 use-
              ful when combined 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 automatically 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  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 pro-
              cedure will upgrade your entire system.

       -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  nor-
              mal  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 extrapola-
              tion 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:
                  dact  -p  http://www.rkeene.org/devel/dact/pre-
              compiled/dact-@@OSNM@@-@@OSVS@@-@@ARCH@@.bin
                  dact:  http://www.rkeene.org/devel/dact/precom-
              piled/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 compressed 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 algorithms use  different  authentication
              methods.


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


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


AUTHOR
       Roy Keene <dact@rkeene.org>



                                                          DACT(1)
