package Win32.win_cvs;

import com.urbancode.pagelet.*;
import java.io.*;
import java.util.*;
import com.urbancode.anthill.ProjectProperties;	// line 1
import com.urbancode.anthill.adapter.*;	// line 2
import com.urbancode.anthill.Anthill;	// line 3

public class getRevisionsSince_pgl implements Template {



	public void service(Map context, Writer out) throws Throwable {

		PageletFactory pageletFactory = (PageletFactory) context.get(PageletFactory.PAGELET_FACTORY_CONTEXT_KEY);

		Anthill anthill = Anthill.getAnthill();
ProjectProperties pp = (ProjectProperties)context.get("Properties");
CVSRepositoryAdapter ra = (CVSRepositoryAdapter)context.get("Adapter");

Date date = (Date)context.get("Date");
String cvsroot = pp.getProperty(CVSRepositoryAdapter.ROOT_KEY);
String branch = pp.getProperty(CVSRepositoryAdapter.BRANCH_KEY);
String module = pp.getProperty(CVSRepositoryAdapter.MODULE_KEY);
String workDir = anthill.getAnthillRootDir().getAbsolutePath() +
		 File.separator + pp.getProperty(CVSRepositoryAdapter.WORK_DIR_KEY);

if (workDir.endsWith(File.separator)) {
	workDir = workDir.substring(0, workDir.length()-1);
}

String branchString = "";
String dateString = "";

if (date != null) {
     TimeZone gmtTimeZone = TimeZone.getTimeZone("GMT");
     ra.CVS_IN_DATE.setTimeZone(gmtTimeZone);
     String dateConstraint = ">" +ra.CVS_IN_DATE.format(date) + " GMT"; 
     dateString+=" -d" + "\"" + dateConstraint + "\"";
}

if (branch != null && (!branch.trim().equals(""))) {
     branchString+=" -r" + branch;
     workDir = workDir + File.separator + branch;
} 
else {            
     branchString+=" -rHEAD -N";
}	// line 38
		out.write("cmd /x/c");	// line 38
		out.write("\n");	// line 38
		if ((workDir != null) && (!workDir.trim().equals(""))) {
	workDir = workDir + File.separator + module;
	File tempFile = new File(workDir);
	if (!tempFile.exists()) {
		tempFile.mkdirs();
	}
        workDir = tempFile.getAbsolutePath();	// line 47
		out.write("        cd /d ");	// line 47
		out.write(String.valueOf(workDir));	// line 48
		out.write(" &&");	// line 48
		out.write("\n");	// line 48
		}	// line 51
		out.write("cvs -d ");	// line 51
		out.write(String.valueOf(cvsroot));	// line 52
		out.write(" log");	// line 52
		out.write(String.valueOf(dateString));	// line 52
		out.write(String.valueOf(branchString));	// line 52
		out.write("\n");	// line 52
	}
}