// This exists for a reason. I don't remember what it is, though..

#include <unistd.h>
#include <iostream>
#include <string>
#include <cstdlib>
#include <cerrno>

void usage(char *);

enum action_type { compress, decompress };

int main(int argc, char *argv[])
{
     if (argc > 2)
          usage(argv[0]);

     action_type action = compress; // default to compressing

     if (argc > 1) { // check arguments
          std::string s = argv[1];
          if (s == "-d")
               action = decompress;
          else if (s == "-c")
               action = compress;
          else
               usage(argv[0]);
     }

     const char *opt = (action) ? "-d" : "--";
     execlp("gzip", argv[0], "-cq", opt, 0);
     
     std::cout << argv[0] << ": error " << (action ? "de" : "")
	          << "compressing: " << std::strerror(errno) << std::endl;

     return 1;
}     


void usage(char *name)
{
     std::cout << "usage: " << name << " [-c] [-d]" << std::endl;
     std::exit(1);
}
