From 775a8a55fd36625a5f092e662c61b5825b8b6ab4 Mon Sep 17 00:00:00 2001 From: adam Date: Thu, 10 Apr 2008 09:36:20 -0700 Subject: [PATCH] add support for processing directories, checking modified-times darcs-hash:20080410163620-5007d-016a60f6befee7f2f5891c87a49c3b887aebe482.gz --- src/HaskellHelper.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/HaskellHelper.java b/src/HaskellHelper.java index daa4fe6..290d3d7 100644 --- a/src/HaskellHelper.java +++ b/src/HaskellHelper.java @@ -61,11 +61,16 @@ public class HaskellHelper { } File indir = new File(argv[0]); File outdir = new File(argv[1]); - process(indir, "", outdir); + if (!indir.isDirectory()) { + process(new File(indir.getParent()), indir.getName(), outdir); + } else { + process(indir, "", outdir); + } } private static void process(File indir, String suffix, File outdir) throws Throwable { - File f = new File(indir.getAbsolutePath()+suffix); + File f = new File(indir.getAbsolutePath()+File.separatorChar+suffix); + //System.out.println(f+" "+indir + " " + suffix + " " + outdir); if (!f.exists()) return; if (f.isDirectory()) { for (String s : f.list()) @@ -73,15 +78,16 @@ public class HaskellHelper { return; } if (f.getPath().endsWith(".wix")) { - System.out.println(); String out = "== " + suffix + " "; while(out.length() < 75) out+="="; System.out.println(ANSI.yellow(out)); + //System.out.println(); + String outPath = outdir.getAbsolutePath()+File.separatorChar+suffix; + outPath = outPath.substring(0, outPath.length()-".wix".length())+".html"; + if (new File(outPath).exists() && new File(outPath).lastModified() > f.lastModified()) return; Class.forName("Main"). getMethod("main", new Class[] { String[].class }). invoke(null, new Object[] { new String[] { f.getAbsolutePath() } }); - String outPath = outdir.getAbsolutePath()+suffix; - outPath = outPath.substring(0, outPath.length()-".wix".length())+".html"; new File(new File(outPath).getParent()).mkdirs(); PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(outPath+"+"))); pw.println(ret); @@ -110,6 +116,8 @@ public class HaskellHelper { } } new File(outPath+"+").renameTo(dest); + if (dest.lastModified() <= f.lastModified()) + dest.setLastModified(f.lastModified()+1); } } -- 1.7.10.4