/* * Created on 29-Oct-2004 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package org.jical; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStreamReader; import java.text.SimpleDateFormat; import java.util.Date; import java.util.LinkedList; /** * @author sfg * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class SyslogICal { public static void main(String[] args) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss"); SimpleDateFormat touchformatter = new SimpleDateFormat("yyyyMMddHHmm.ss"); SimpleDateFormat syslogformatter = new SimpleDateFormat("yyyy MMM dd HH:mm:ss"); // Parameters // 1 - input file - ie syslog // 2 - output cal file. // 3 - keyword to start event. // 4 - keyword to stop event. // 5 - Event Summary Line ICalendar iCal = new ICalendar(); iCal.icalEventCollection = new LinkedList(); iCal.setProdId("JICAL"); iCal.setVersion("2.0"); int iCtr = 0; try { FileInputStream fin = new FileInputStream(args[0]); BufferedReader myInput = null; myInput = new BufferedReader(new InputStreamReader(fin)); String buildLine = null; String thisLine = ""; Date startDate = null; Date endDate = null; /* Two loops, first joins lines together, second processes lines.. */ while((thisLine = myInput.readLine()) != null) { // Parse the syslog. If the right one comes up, create an event. // This is the bit where we create a VEVENT! if (thisLine.indexOf(args[2]) != -1) { startDate = syslogformatter.parse("2004 "+thisLine.substring(0,15)); System.out.println(thisLine); } if (thisLine.indexOf(args[3]) != -1 && startDate != null) { endDate = syslogformatter.parse("2004 "+thisLine.substring(0,15)); System.out.println(thisLine); ICalendarVEvent vevent = new ICalendarVEvent(); Date workDate = new Date(); vevent.setDateStart(startDate); vevent.setDateEnd(endDate); vevent.setSummary(args[4]); vevent.setDescription(""); vevent.setSequence(0); vevent.setEventClass("PUBLIC"); vevent.setTransparency("OPAQUE"); vevent.setDateStamp(workDate); vevent.setCreated(workDate); vevent.setLastModified(workDate); //vevent.setAttach(photoFile.toURL().toString()); vevent.setOrganizer("MAILTO:sfg@eurekait.com"); iCtr++; //System.out.println(iCtr); vevent.setUid("jical-"+touchformatter.format(workDate)+"-"+iCtr); vevent.setPriority(3); //System.out.println(vevent.toVEvent()); iCal.icalEventCollection.add(vevent); startDate = null; } } } catch(Exception e) { e.printStackTrace(); System.err.println("SomethingBad Happened:"+e); } try{ // Now write to string and view as file. //System.out.println(iCal.getVCalendar()); BufferedWriter out = new BufferedWriter(new FileWriter(args[1])); out.write(iCal.getVCalendar()); out.close(); } catch (Exception e) { e.printStackTrace(); System.err.println("SomethingBad Happened:"+e); } //System.out.println("Rendered new SYSLOGICAL calendar file: "+args[1]); } }