/**
*  Create a zip or gzip archive
*
*  Assignment #3 by Alex Rudniy.
*/

import  java.io.*;
import java.util.zip.*;



public class Zip {
   static final int BUFFER = 2048;

   public static void main (String args[]) {
      try {
        String archiveType = args[0];
        String fileName = args[1];
        BufferedInputStream origin = null;
        FileOutputStream dest = new FileOutputStream(args[1] + ".zip");        
        FileInputStream fi = new FileInputStream(args[1]);
        origin = new BufferedInputStream(fi, BUFFER);

        if (args[0].equals("zip")){

          ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
          ZipEntry entry = new ZipEntry(args[1]);
          out.putNextEntry(entry);

          byte data[] = new byte[BUFFER];
          
          
          int count;
          while((count = origin.read(data, 0, BUFFER)) != -1) {
            out.write(data, 0, count);
              
            
          }
          out.close();

        } else if (args[0].equals("gzip")){

          GZIPOutputStream out = new GZIPOutputStream(new BufferedOutputStream(dest));
          byte data[] = new byte[BUFFER];

          int count;
          while((count = origin.read(data, 0, BUFFER)) != -1) {
            out.write(data, 0, count);
          }
        }
          origin.close();

      } catch(Exception e) {
         e.printStackTrace();
         System.out.println("USAGE: java Zip archiveType fileName");
      }
   }
}