changeset 983:1e347288712d

Add "upd" option to previews generation.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 29 Nov 2014 15:31:26 +0200
parents 138987d0253a
children 03b245ef3a47
files faptool.php
diffstat 1 files changed, 26 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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)) : "";