summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgen_thumbs.php44
-rw-r--r--phpfspot.class.php20
2 files changed, 56 insertions, 8 deletions
diff --git a/gen_thumbs.php b/gen_thumbs.php
index a2235bd..f6742e0 100755
--- a/gen_thumbs.php
+++ b/gen_thumbs.php
@@ -32,10 +32,52 @@ require_once "phpfspot.class.php";
$fspot = new PHPFSPOT;
$fspot->fromcmd = true;
+$overwrite = false;
+
+$short_options = "";
+$short_options.= "h"; /* help */
+$short_options.= "o"; /* overwrite */
+
+$long_options = array(
+ "help",
+ "overwrite",
+);
+
+/* command line option specified? */
+if(isset($_SERVER['argc']) && $_SERVER['argc'] > 1) {
+ /* validate */
+ $con = new Console_Getopt;
+ $args = $con->readPHPArgv();
+ $options = $con->getopt($args, $short_options, $long_options);
+
+ if(PEAR::isError($options)) {
+ die ("Error in command line: " . $options->getMessage() . "\n");
+ }
+
+ foreach($options[0] as $opt) {
+ switch($opt[0]) {
+ case 'h':
+ case '--help':
+ print "we need some help here!\n";
+ exit(0);
+ break;
+ case 'o':
+ case '--overwrite':
+ print "Overwrite flag set!\n";
+ $overwrite = true;
+ break;
+ default:
+ print "invalid option";
+ exit(1);
+ break;
+ }
+ }
+}
+
$all = $fspot->getPhotoSelection();
foreach($all as $photo) {
- $fspot->gen_thumb($photo);
+ $fspot->gen_thumb($photo, $overwrite);
}
?>
diff --git a/phpfspot.class.php b/phpfspot.class.php
index 63a9139..9e78d1d 100644
--- a/phpfspot.class.php
+++ b/phpfspot.class.php
@@ -1306,7 +1306,7 @@ class PHPFSPOT {
* 2. Check if the md5sum of the original file has changed
* 3. Generate the thumbnails if needed
*/
- public function gen_thumb($idx = 0, $force = 0)
+ public function gen_thumb($idx = 0, $force = 0, $overwrite = false)
{
$error = 0;
@@ -1339,6 +1339,8 @@ class PHPFSPOT {
$changes = false;
foreach($resolutions as $resolution) {
+
+ $generate_it = false;
$thumb_sub_path = substr($file_md5, 0, 2);
$thumb_path = $this->cfg->thumb_path ."/". $thumb_sub_path ."/". $resolution ."_". $file_md5;
@@ -1349,15 +1351,14 @@ class PHPFSPOT {
/* if the thumbnail file doesn't exist, create it */
if(!file_exists($thumb_path)) {
-
- $this->_debug(" ". $resolution ."px");
- if(!$this->create_thumbnail($full_path, $thumb_path, $resolution))
- $error = 1;
-
- $changes = true;
+ $generate_it = true;
}
/* if the file hasn't changed there is no need to regen the thumb */
elseif($file_md5 != $this->getMD5($idx) || $force) {
+ $generate_it = true;
+ }
+
+ if($generate_it || $overwrite) {
$this->_debug(" ". $resolution ."px");
if(!$this->create_thumbnail($full_path, $thumb_path, $resolution))
@@ -1632,6 +1633,11 @@ class PHPFSPOT {
print "PEAR Calendar package is missing<br />\n";
$missing = true;
}
+ @include_once 'Console/Getopt.php';
+ if(isset($php_errormsg) && preg_match('/Failed opening.*for inclusion/i', $php_errormsg)) {
+ print "PEAR Console_Getopt package is missing<br />\n";
+ $missing = true;
+ }
ini_restore('track_errors');
if(isset($missing))