From: Andreas Unterkircher Date: Tue, 1 Jan 2008 17:43:27 +0000 (+0100) Subject: issue88, overwrite option for gen_thumbs.php X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=phpfspot.git;a=commitdiff_plain;h=aed571db7a6edcc6078a2d77ef1f60928bab79ca;hp=e54956dad7e0632849db2a92eb7ceff88b52247d issue88, overwrite option for gen_thumbs.php --- 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
\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
\n"; + $missing = true; + } ini_restore('track_errors'); if(isset($missing))