# HG changeset patch # User Matti Hamalainen # Date 1417267886 -7200 # Node ID 1e347288712ddb53ad389003c2df55085a93c442 # Parent 138987d0253a503382168b41d5eb481ab3c348c3 Add "upd" option to previews generation. diff -r 138987d0253a -r 1e347288712d faptool.php --- a/faptool.php Sat Nov 29 14:51:16 2014 +0200 +++ b/faptool.php Sat Nov 29 15:31:26 2014 +0200 @@ -124,7 +124,7 @@ } -function wtEntryToSource($compo, $inFilename, $edata, $entryFilename, &$outData, &$outFilename) +function wtEntryToSource($compo, $inFilename, $edata, $entryFilename, &$outData, &$outFilename, $force) { // Does compo preview type match this file class? if ($edata["class"] != $compo["preview_type"]) @@ -139,7 +139,7 @@ } $outFilename = stReplaceFileExt($entryFilename, "_preview.".$fext); - if (file_exists($outFilename) && filemtime($outFilename) >= filemtime($entryFilename)) + if (!$force && file_exists($outFilename) && filemtime($outFilename) >= filemtime($entryFilename)) return TRUE; printf("GENERATING: %s -> %s\n", $inFilename, $outFilename); @@ -250,11 +250,13 @@ return TRUE; } else - if ($mode != "gen") + if ($mode != "gen" && $mode != "upd") die("ERROR: Unsupported previews mode ".$mode."\n"); + $force = ($mode == "upd"); + // Check validity of previews - if ($pdata["valid"]) + if ($pdata["valid"] && !$force) return TRUE; // Okay, no valid previews .. lets see what we can do .. @@ -305,7 +307,7 @@ // if match, render / convert / cp to as source and exit loop. if (is_file($fname) && ($mdata = stProbeFileInfo($fname, TRUE)) !== false && - ($found = wtEntryToSource($compo, $fname, $mdata, $filename, $pdata, $outFilename)) === true) + ($found = wtEntryToSource($compo, $fname, $mdata, $filename, $pdata, $outFilename, $force)) === true) break; } @@ -317,7 +319,7 @@ if ($edata["class"] == $compo["preview_type"]) { // Single file - $found = wtEntryToSource($compo, $filename, $edata, $filename, $pdata, $outFilename); + $found = wtEntryToSource($compo, $filename, $edata, $filename, $pdata, $outFilename, $force); } if (!$found) @@ -331,6 +333,23 @@ else $inFilename = stMakePath(FALSE, TRUE, array($setEntryPath, $compo["cpath"], $pdata["file"]["filename"])); + // Check validity vs. + if (!$force) + { + $valid = TRUE; + $inMTime = filemtime($inFilename); + foreach ($pdata["files"] as $stype => $sdata) + { + if (!file_exists($sdata["file"]) || filemtime($sdata["file"]) < $inMTime) + { + $valid = FALSE; + break; + } + } + if ($valid) + return TRUE; + } + // Either we now have a sourcefile or generated file switch ($compo["preview_type"]) { @@ -735,6 +754,7 @@ switch ($mode) { case "gen": + case "upd": case "sta": case "lis": $sql = (stCArg(3) != "") ? " AND id=".intval(stCArg(3)) : "";