package cn.edu.sjtu.omnilab.sysloganonymizer;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
/**
* @Author: Yusu Zhao
*/
public class StartProcessing {
String inFile;
String outFile;
/**
* @param args
* @throws ParseException
* @throws IOException
* @throws NoSuchAlgorithmException
*/
public static void main(String[] args) throws ParseException, IOException, NoSuchAlgorithmException {
File inFile, outFile;
FileWriter fileWriter;
StartProcessing sp = new StartProcessing();
sp.ReadCmd(args);
inFile = new File(sp.inFile);
outFile = new File(sp.outFile);
BufferedReader in = new BufferedReader(new FileReader(inFile));
if (!outFile.exists())
outFile.createNewFile();
fileWriter = new FileWriter(outFile);
String input;
ArrayList<String> apName = new ArrayList<String>();
while ((input = in.readLine()) != null) {
String output = SyslogPreprocess.Filter(input);
output = SyslogPreprocess.APIPDeletion(output);
output = SyslogPreprocess.APNameAnonymous(output, apName);
output = SyslogPreprocess.IPAnonymous(output);
output = SyslogPreprocess.MacAnonymous(output);
output = SyslogPreprocess.UserNameAnonymous(output);
if (output != null)
fileWriter.write(output + "\n");
}
fileWriter.close();
}
private void ReadCmd(String[] args) throws ParseException {
Options options = new Options();
// Add Possible Options
options.addOption("I", "Input File", true, "The absolue file path of the input file.");
options.addOption("O", "Output File", true, "The absolue file path of the output file.");
CommandLineParser parser = new BasicParser();
CommandLine line = parser.parse(options, args);
if (line.hasOption("I")) {
inFile = line.getOptionValue("I");
}
if (line.hasOption("O")) {
outFile = line.getOptionValue("O");
}
}
}