
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Array;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Vector;
import java.util.Date;


public class MyHttpServer {

	public static String root="data";
	public static int port=8080;
	public static String dirTemplate = "";
	
	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		dirTemplate = readFileAsString("./template.html");
		
		for(int i=0; i< args.length; i++){
			if(args[i].equals("-p")){
				i++;
				port = Integer.parseInt(args[i]);
			}
			else if(args[i].equals("-r")){
				i++;
				root = args[i];
			}
		}
		
		System.out.println("Waiting for request on port "+port+" with root "+root);
		

		ServerSocket s = new ServerSocket(port);
		while(true) {
			Socket socket = s.accept();
			new ServeConnection(socket);
		}
	}

	
    private static String readFileAsString(String filePath) throws java.io.IOException {
        StringBuilder result = new StringBuilder(1000);
        BufferedReader reader = new BufferedReader(new FileReader(filePath));
        char[] buf = new char[1024];
        
        int c = 0;
        while ((c = reader.read(buf)) != -1){
            result.append(buf, 0, c);
        }
        
        reader.close();
        return result.toString();
    }

	
}
