Changeset 119
- Timestamp:
- 09/14/06 20:02:22 (2 years ago)
- Files:
-
- trunk/classes/phing/tasks/defaults.properties (modified) (1 diff)
- trunk/classes/phing/tasks/ext/ioncube/IoncubeEncoderTask.php (modified) (11 diffs)
- trunk/classes/phing/tasks/ext/svn/SvnBaseTask.php (modified) (4 diffs)
- trunk/classes/phing/tasks/ext/svn/SvnCheckoutTask.php (added)
- trunk/classes/phing/tasks/ext/svn/SvnExportTask.php (modified) (2 diffs)
- trunk/classes/phing/tasks/ext/svn/SvnUpdateTask.php (added)
- trunk/docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/classes/phing/tasks/defaults.properties
r117 r119 59 59 phpdoc=phing.tasks.ext.phpdoc.PHPDocumentorTask 60 60 svnlastrevision=phing.tasks.ext.svn.SvnLastRevisionTask 61 svncheckout=phing.tasks.ext.svn.SvnCheckoutTask.php 61 62 svnexport=phing.tasks.ext.svn.SvnExportTask 63 svnupdate=phing.tasks.ext.svn.SvnUpdateTask 62 64 phpunit2=phing.tasks.ext.phpunit2.PHPUnit2Task 63 65 phpunit2report=phing.tasks.ext.phpunit2.PHPUnit2ReportTask trunk/classes/phing/tasks/ext/ioncube/IoncubeEncoderTask.php
r81 r119 27 27 * 28 28 * @author Michiel Rook <michiel.rook@gmail.com> 29 * @author Andrew Eddie <andrew.eddie@jamboworks.com> 29 30 * @version $Id$ 30 31 * @package phing.tasks.ext.ioncube … … 33 34 class IoncubeEncoderTask extends Task 34 35 { 35 private $phpVersion = "5"; 36 private $ioncubePath = "/usr/local/ioncube"; 37 private $encoderName = "ioncube_encoder"; 38 39 private $fromDir = ""; 40 private $toDir = ""; 41 42 private $encrypt = ""; 43 44 private $targetOption = ""; 45 private $binary = false; 46 private $optimize = ""; 47 private $withoutRuntimeLoaderSupport = false; 48 49 private $licensePath = ""; 50 private $passPhrase = ""; 51 36 private $ionSwitches = array(); 37 38 private $ionOptions = array(); 39 40 private $ionOptionsXS = array(); 41 52 42 private $comments = array(); 43 44 private $encoderName = 'ioncube_encoder'; 45 46 private $fromDir = ''; 47 48 private $ioncubePath = '/usr/local/ioncube'; 49 50 private $phpVersion = '5'; 51 52 private $targetOption = ''; 53 54 private $toDir = ''; 55 56 /** 57 * Adds a comment to be used in encoded files 58 */ 59 function addComment(IoncubeComment $comment) 60 { 61 $this->comments[] = $comment; 62 } 63 64 /** 65 * Sets the allowed server 66 */ 67 function setAllowedServer($value) 68 { 69 $this->ionOptionsXS['allowed-server'] = $value; 70 } 71 72 /** 73 * Returns the allowed server setting 74 */ 75 function getAllowedServer() 76 { 77 return $this->ionOptionsXS['allowed-server']; 78 } 79 80 /** 81 * Sets the binary option 82 */ 83 function setBinary($value) 84 { 85 $this->ionSwitches['binary'] = $value; 86 } 87 88 /** 89 * Returns the binary option 90 */ 91 function getBinary() 92 { 93 return $this->ionSwitches['binary']; 94 } 95 96 /** 97 * Sets files or folders to copy (separated by space) 98 */ 99 function setCopy($value) 100 { 101 $this->ionOptionsXS['copy'] = $value; 102 } 103 104 /** 105 * Returns the copy setting 106 */ 107 function getCopy() 108 { 109 return $this->ionOptionsXS['copy']; 110 } 111 112 /** 113 * Sets additional file patterns, files or directories to encode, 114 * or to reverse the effect of copy (separated by space) 115 */ 116 function setEncode($value) 117 { 118 $this->ionOptionsXS['encode'] = $value; 119 } 120 121 /** 122 * Returns the encode setting 123 */ 124 function getEncode() 125 { 126 return $this->enionOptionsXS['encode']; 127 } 128 129 /** 130 * Sets regexps of additional files to encrypt (separated by space) 131 */ 132 function setEncrypt($value) 133 { 134 $this->ionOptionsXS['encrypt'] = $value; 135 } 136 137 /** 138 * Returns regexps of additional files to encrypt (separated by space) 139 */ 140 function getEncrypt() 141 { 142 return $this->ionOptionsXS['encrypt']; 143 } 144 145 /** 146 * Sets a period after which the files expire 147 */ 148 function setExpirein($value) 149 { 150 $this->ionOptions['expire-in'] = $value; 151 } 152 153 /** 154 * Returns the expireIn setting 155 */ 156 function getExpirein() 157 { 158 return $this->ionOptions['expire-in']; 159 } 160 161 /** 162 * Sets a YYYY-MM-DD date to expire the files 163 */ 164 function setExpireon($value) 165 { 166 $this->ionOptions['expire-on'] = $value; 167 } 168 169 /** 170 * Returns the expireOn setting 171 */ 172 function getExpireon() 173 { 174 return $this->ionOptions['expire-on']; 175 } 176 177 /** 178 * Sets the source directory 179 */ 180 function setFromDir($value) 181 { 182 $this->fromDir = $value; 183 } 184 185 /** 186 * Returns the source directory 187 */ 188 function getFromDir() 189 { 190 return $this->fromDir; 191 } 192 193 /** 194 * Set files and directories to ignore entirely and exclude from the target directory 195 * (separated by space). 196 */ 197 function setIgnore($value) 198 { 199 $this->ionOptionsXS['ignore'] = $value; 200 } 201 202 /** 203 * Returns the ignore setting 204 */ 205 function getIgnore() 206 { 207 return $this->ionOptionsXS['ignore']; 208 } 53 209 54 210 /** 55 211 * Sets the path to the ionCube encoder 56 212 */ 57 function setIoncubePath($ ioncubePath)58 { 59 $this->ioncubePath = $ ioncubePath;213 function setIoncubePath($value) 214 { 215 $this->ioncubePath = $value; 60 216 } 61 217 … … 69 225 70 226 /** 227 * Set files and directories not to be ignored (separated by space). 228 */ 229 function setKeep($value) 230 { 231 $this->ionOptionsXS['keep'] = $value; 232 } 233 234 /** 235 * Returns the ignore setting 236 */ 237 function getKeep() 238 { 239 return $this->ionOptionsXS['keep']; 240 } 241 242 /** 243 * Sets the path to the license file to use 244 */ 245 function setLicensePath($value) 246 { 247 $this->ionOptions['with-license'] = $value; 248 } 249 250 /** 251 * Returns the path to the license file to use 252 */ 253 function getLicensePath() 254 { 255 return $this->ionOptions['with-license']; 256 } 257 258 /** 259 * Sets the no-doc-comments option 260 */ 261 function setNoDocComments($value) 262 { 263 $this->ionSwitches['no-doc-comment'] = $value; 264 } 265 266 /** 267 * Returns the no-doc-comments option 268 */ 269 function getNoDocComments() 270 { 271 return $this->ionSwitches['no-doc-comment']; 272 } 273 274 /** 275 * Sets the obfuscate option 276 */ 277 function setObfuscate($value) 278 { 279 $this->ionOptionsXS['obfuscate'] = $value; 280 } 281 282 /** 283 * Returns the optimize option 284 */ 285 function getObfuscate() 286 { 287 return $this->ionOptionsXS['obfuscate']; 288 } 289 290 /** 291 * Sets the obfuscation key (required if using the obfuscate option) 292 */ 293 function setObfuscationKey($value) 294 { 295 $this->ionOptions['obfuscation-key'] = $value; 296 } 297 298 /** 299 * Returns the optimize option 300 */ 301 function getObfuscationKey() 302 { 303 return $this->ionOptions['obfuscation-key']; 304 } 305 306 /** 307 * Sets the optimize option 308 */ 309 function setOptimize($value) 310 { 311 $this->ionOptions['optimize'] = $value; 312 } 313 314 /** 315 * Returns the optimize option 316 */ 317 function getOptimize() 318 { 319 return $this->ionOptions['optimize']; 320 } 321 322 /** 323 * Sets the passphrase to use when encoding files 324 */ 325 function setPassPhrase($value) 326 { 327 $this->ionOptions['passphrase'] = $value; 328 } 329 330 /** 331 * Returns the passphrase to use when encoding files 332 */ 333 function getPassPhrase() 334 { 335 return $this->ionOptions['passphrase']; 336 } 337 338 /** 71 339 * Sets the version of PHP to use (defaults to 5) 72 340 */ 73 function setPhpVersion($ phpVersion)74 { 75 $this->phpVersion = $ phpVersion;341 function setPhpVersion($value) 342 { 343 $this->phpVersion = $value; 76 344 } 77 345 … … 85 353 86 354 /** 87 * Sets the source directory88 */89 function setFromDir($fromDir)90 {91 $this->fromDir = $fromDir;92 }93 94 /**95 * Returns the source directory96 */97 function getFromDir($fromDir)98 {99 return $this->fromDir;100 }101 102 /**103 355 * Sets the target directory 104 356 */ 105 function setToDir($ toDir)106 { 107 $this->toDir = $ toDir;357 function setToDir($value) 358 { 359 $this->toDir = $value; 108 360 } 109 361 … … 111 363 * Returns the target directory 112 364 */ 113 function getToDir( $toDir)365 function getToDir() 114 366 { 115 367 return $this->toDir; … … 117 369 118 370 /** 119 * Sets regexps of additional files to encrypt (separated by space)120 */121 function setEncrypt($encrypt)122 {123 $this->encrypt = $encrypt;124 }125 126 /**127 * Returns regexps of additional files to encrypt (separated by space)128 */129 function getEncrypt()130 {131 return $this->encrypt;132 }133 134 /**135 * Sets the binary option136 */137 function setBinary($binary)138 {139 $this->binary = $binary;140 }141 142 /**143 * Returns the binary option144 */145 function getBinary()146 {147 return $this->binary;148 }149 150 /**151 * Sets the optimize option152 */153 function setOptimize($optimize)154 {155 $this->optimize = $optimize;156 }157 158 /**159 * Returns the optimize option160 */161 function getOptimize()162 {163 return $this->optimize;164 }165 166 /**167 371 * Sets the without-runtime-loader-support option 168 372 */ 169 function setWithoutRuntimeLoaderSupport($ withoutRuntimeLoaderSupport)170 { 171 $this-> withoutRuntimeLoaderSupport = $withoutRuntimeLoaderSupport;373 function setWithoutRuntimeLoaderSupport($value) 374 { 375 $this->ionSwitches['without-runtime-loader-support'] = $value; 172 376 } 173 377 … … 177 381 function getWithoutRuntimeLoaderSupport() 178 382 { 179 return $this-> withoutRuntimeLoaderSupport;383 return $this->ionSwitches['without-runtime-loader-support']; 180 384 } 181 385 … … 196 400 } 197 401 198 /**199 * Sets the path to the license file to use200 */201 function setLicensePath($licensePath)202 {203 $this->licensePath = $licensePath;204 }205 206 /**207 * Returns the path to the license file to use208 */209 function getLicensePath()210 {211 return $this->licensePath;212 }213 214 /**215 * Sets the passphrase to use when encoding files216 */217 function setPassPhrase($passPhrase)218 {219 $this->passPhrase = $passPhrase;220 }221 222 /**223 * Returns the passphrase to use when encoding files224 */225 function getPassPhrase()226 {227 return $this->passPhrase;228 }229 230 /**231 * Adds a comment to be used in encoded files232 */233 function addComment(IoncubeComment $comment)234 {235 $this->comments[] = $comment;236 }237 238 402 /** 239 403 * The main entry point … … 249 413 $this->log("Running ionCube Encoder..."); 250 414 251 exec($encoder->__toString() . " ". $arguments . " 2>&1", $output, $return);415 exec($encoder->__toString() . ' ' . $arguments . " 2>&1", $output, $return); 252 416 253 417 if ($return != 0) … … 262 426 private function constructArguments() 263 427 { 264 $arguments = ""; 265 266 if ($this->binary) 267 { 268 $arguments.= "--binary "; 269 } 270 271 if (!empty($this->optimize)) 272 { 273 $arguments.= "--optimize " . $this->optimize . " "; 274 } 275 276 if ($this->withoutRuntimeLoaderSupport) 277 { 278 $arguments.= "--without-runtime-loader-support "; 428 $arguments = ''; 429 430 foreach ($this->ionSwitches as $name => $value) 431 { 432 if ($value) 433 { 434 $arguments.= "--$name "; 435 } 436 } 437 438 foreach ($this->ionOptions as $name => $value) 439 { 440 $arguments.= "--$name '$value' "; 441 } 442 443 foreach ($this->ionOptionsXS as $name => $value) 444 { 445 foreach (explode(' ', $value) as $arg) 446 { 447 $arguments.= "--$name '$arg' "; 448 } 449 } 450 451 foreach ($this->comments as $comment) 452 { 453 $arguments.= "--add-comment '" . $comment->getValue() . "' "; 279 454 } 280 455 … … 298 473 } 299 474 300 if (!empty($this->encrypt)) 301 { 302 foreach (explode(" ", $this->encrypt) as $encrypt) 303 { 304 $arguments.= "--encrypt '$encrypt' "; 305 } 306 } 307 308 if (!empty($this->licensePath)) 309 { 310 $arguments.= "--with-license '" . $this->licensePath . "' "; 311 } 312 313 if (!empty($this->passPhrase)) 314 { 315 $arguments.= "--passphrase '" . $this->passPhrase . "' "; 316 } 317 318 foreach ($this->comments as $comment) 319 { 320 $arguments.= "--add-comment '" . $comment->getValue() . "' "; 321 } 322 323 if ($this->fromDir != "") 324 { 325 $arguments .= $this->fromDir . " "; 326 } 327 328 if ($this->toDir != "") 329 { 330 $arguments .= "-o " . $this->toDir . " "; 331 } 332 475 if ($this->fromDir != '') 476 { 477 $arguments .= $this->fromDir . ' '; 478 } 479 480 if ($this->toDir != '') 481 { 482 $arguments .= "-o " . $this->toDir . ' '; 483 } 484 333 485 return $arguments; 334 486 } trunk/classes/phing/tasks/ext/svn/SvnBaseTask.php
r115 r119 23 23 24 24 /** 25 * Send a message by mail()25 * Base class for Subversion tasks 26 26 * 27 * <mail to="user@example.org" subject="build complete">The build process is a success...</mail> 28 * 29 * @author Francois Harvey at SecuriWeb (http://www.securiweb.net) 30 * @version $Id$ 31 * @package phing.tasks.ext 27 * @author Michiel Rook <michiel.rook@gmail.com> 28 * @author Andrew Eddie <andrew.eddie@jamboworks.com> 29 * @version $Id$ 30 * @package phing.tasks.ext.svn 31 * @see VersionControl_SVN 32 * @since 2.2.0 32 33 */ 33 34 abstract class SvnBaseTask extends Task … … 44 45 45 46 private $svnArgs = array(); 47 48 private $svnSwitches = array(); 49 50 private $toDir = ""; 46 51 47 52 /** … … 105 110 return $this->svnPath; 106 111 } 107 112 113 // 114 // Args 115 // 116 117 /** 118 * Sets the path to export/checkout to 119 */ 120 function setToDir($toDir) 121 { 122 $this->toDir = $toDir; 123 } 124 125 /** 126 * Returns the path to export/checkout to 127 */ 128 function getToDir() 129 { 130 return $this->toDir; 131 } 132 133 // 134 // Switches 135 // 136 137 /** 138 * Sets the force switch 139 */ 140 function setForce($value) 141 { 142 $this->svnSwitches['force'] = $value; 143 } 144 145 /** 146 * Returns the forec switch 147 */ 148 function getForce() 149 { 150 return isset( $this->svnSwitches['force'] ) ? $this->svnSwitches['force'] : ''; 151 } 152 153 /** 154 * Sets the username of the user to export 155 */ 156 function setUsername($value) 157 { 158 $this->svnSwitches['username'] = $value; 159 } 160 161 /** 162 * Returns the username 163 */ 164 function getUsername() 165 { 166 return isset( $this->svnSwitches['username'] ) ? $this->svnSwitches['username'] : ''; 167 } 168 169 /** 170 * Sets the password of the user to export 171 */ 172 function setPassword($value) 173 { 174 $this->svnSwitches['password'] = $value; 175 } 176 177 /** 178 * Returns the password 179 */ 180 function getPassword() 181 { 182 return isset( $this->svnSwitches['password'] ) ? $this->svnSwitches['password'] : ''; 183 } 184 185 /** 186 * Sets the password of the user to export 187 */ 188 function setNoCache($value) 189 { 190 $this->svnSwitches['no-auth-cache'] = $value; 191 } 192 193 /** 194 * Returns the password 195 */ 196 function getNoCache() 197 { 198 return isset( $this->svnSwitches['no-auth-cache'] ) ? $this->svnSwitches['no-auth-cache'] : ''; 199 } 200 108 201 /** 109 202 * Creates a VersionControl_SVN class based on $mode … … 162 255 163 256 $tempArgs = array_merge($tempArgs, $args); 164 165 if ($output = $this->svn->run($tempArgs, $switches)) 257 258 $tempSwitches = $this->svnSwitches; 259 260 $tempSwitches = array_merge($tempSwitches, $switches); 261 262 if ($output = $this->svn->run($tempArgs, $tempSwitches)) 166 263 { 167 264 return $output; trunk/classes/phing/tasks/ext/svn/SvnExportTask.php
r81 r119 25 25 /** 26 26 * Exports/checks out a repository to a local directory 27 * with authentication 27 28 * 28 29 * @author Michiel Rook <michiel.rook@gmail.com> 30 * @author Andrew Eddie <andrew.eddie@jamboworks.com> 29 31 * @version $Id$ 30 32 * @package phing.tasks.ext.svn 31 * @see VersionControl_SVN 32 * @since 2.1.0 33 * @since 2.2.0 33 34 */ 34 35 class SvnExportTask extends SvnBaseTask 35 36 { 36 private $toDir = "";37 38 /**39 * Sets the path to export/checkout to40 */41 function setToDir($toDir)42 {43 $this->toDir = $toDir;44 }45 46 /**47 * Returns the path to export/checkout to48 */49 function getToDir()50 {51 return $this->toDir;52 }53 54 37 /** 55 38 * The main entry point … … 61 44 $this->setup('export'); 62 45 63 $this->log("Exporting SVN repository to '" . $this-> toDir. "'");64 65 $this->run(array($this-> toDir));46 $this->log("Exporting SVN repository to '" . $this->getToDir() . "'"); 47 48 $this->run(array($this->getToDir())); 66 49 } 67 50 } trunk/docs/phing_guide/book/chapters/appendixes/AppendixC-OptionalTasks.html
r116 r119 167 167 168 168 <h3>Example</h3> 169 <pre><ioncubeencoder phpversion="4" binary="true" ioncubepath="/usr/local/ioncube" 170 targetoption="replace" withoutruntimeloadersupport="true" optimize="max" 171 fromdir="files" todir="encoded" licensepath="mylicense.txt" passphrase="mypassphrase"> 169 <pre><ioncubeencoder 170 binary="true" 171 copy="*.ini config/*" 172 encode="*.inc licenses/license.key" 173 encrypt="*.tpl *.xml" 174 encrypt="more" 175 fromdir="files" 176 ignore="*.bak RCS/ *~ docs/" 177 ioncubepath="/usr/local/ioncube" 178 keep="docs/README" 179 licensepath="mylicense.txt" 180 optimize="max" 181 passphrase="mypassphrase" 182 phpversion="4" 183 targetoption="replace" 184 todir="encoded" 185 withoutruntimeloadersupport="true"> 172 186 <comment>A project encoded with the ionCube encoder.</comment> 173 187 </ioncubeencoder> … … 186 200 </thead> 187 201 <tbody> 202 <tr> 203 <td>allowedserver</td> 204 <td>String</td> 205 <td>Restricts the encoded files to particular servers and/or domains. Consult the IonCude documentation for more information.</td> 206 <td>none</td> 207 <td>No</td> 208 </tr> 209 <tr> 210 <td>binary</td> 211 <td>Boolean</td> 212 <td>Whether to save encoded files in binary format (default is ASCII format)</td> 213 <td>false</td> 214 <td>No</td> 215 </tr> 216 <tr> 217 <td>copy</td> 218 <td>String</td> 219 <td>Specifies files or directories to exclude from being encoded or encrypted and copy them to the target directory (separated by space).</td> 220 <td>none</td> 221 <td>No</td> 222 </tr> 223 <tr> 224 <td>encode</td> 225 <td>String</td> 226 <td>Specifies additional file patterns, files or directories to encode, or to reverse the effect of <em>copy</em></td> 227 <td>none</td> 228 <td>No</td> 229 </tr> 230 <tr> 231 <td>encrypt</td> 232 <td>String</td> 233 <td>Specify files or directories (space separated list) that are to be encrypted.</td> 234 <td>none</td> 235 <td>No</td> 236 </tr> 237 <tr> 238 <td>expirein</td> 239 <td>String</td> 240 <td>Sets a period in seconds (s), minutes (m), hours (h) or days (d) after which the files expire. Accepts: <em>500s</em> or <em>55m</em> or <em>24h</em> or <em>7d</em></td> 241 <td>none</td> 242 <td>No</td> 243 </tr> 244 <tr> 245 <td>expireon</td> 246 <td>String</td> 247 <td>Sets a YYYY-MM-DD date to expire the files.</td> 248 <td>none</td> 249 <td>No</td> 250 </tr> 251 <tr> 252 <td>fromdir</td> 253 <td>String</td> 254 <td>Path containing source files</td> 255 <td>none</td> 256 <td>Yes</td> 257 </tr> 258 <tr> 259 <td>ignore</td> 260 <td>String</td> 261 <td>Set files and directories to ignore entirely and exclude from the target directory (separated by space).</td> 262 <td>none</td> 263 <td>Yes</td> 264 </tr> 265 <tr> 266 <td>ioncubepath</td> 267 <td>String</td> 268 <td>Path to the ionCube binaries</td> 269 <td>/usr/local/ioncube</td> 270 <td>No</td> 271 </tr> 272 <tr> 273 <td>keep</td> 274 <td>String</td> 275 <td>Set files and directories not to be ignored (separated by space)./td> 276 <td>none</td> 277 <td>No</td> 278 </tr> 279 <tr> 280 <td>licensepath</td> 281 <td>String</td> 282 <td>Path to the license file that will be used by the encoded files</td> 283 <td>none</td> 284 <td>No</td> 285 </tr> 286 <tr> 287 <td>nodoccomments</td> 288 <td>String</td> 289 <td>Omits documents comments ( /** ... */ ) from the encoded files.</td> 290 <td>none</td> 291 <td>No</td> 292 </tr> 293 <tr> 294 <td>obfuscation-key</td> 295 <td>String</td> 296 <td>The obfuscation key must be supplied when using the obfuscate option</td> 297 <td>none</td> 298 <td>No</td> 299 </tr> 300 </tr> 301 <tr> 302 <td>obfuscate</td> 303 <td>String</td> 304 <td>The Encoder can obfuscate the names of global functions, the names of local variables in global functions, and line numbers. Use either <em>all</em> or any of <em>functions</em>, <em>locals</em> or <em>linenos</em> separated by a space.</td> 305 <td>none</td> 306 <td>No</td> 307 </tr> 308 <tr> 309 <td>optimize</td> 310 <td>String</td> 311 <td>Controls the optimization of the encoded files, accepts either <em>more</em> or <em>max</em></td> 312 <td>none</td> 313 <td>No</td> 314 </tr> 315 <tr> 316 <td>passphrase</td> 317 <td>String</td> 318 <td>The passphrase to use when encoding with a license file</td> 319 <td>none</td> 320 <td>No</td> 321 </tr> 188 322 <tr> 189 323 <td>phpversion</td> … … 194 328 </tr> 195 329 <tr> 196 <td> ioncubepath</td>197 <td>String</td> 198 <td> Path to the ionCube binaries</td>199 <td> /usr/local/ioncube</td>200 <td>No</td> 201 </tr> 202 <tr> 203 <td> binary</td>204 <td> Boolean</td>205 <td> Wether to save encoded files in binary format (default is ASCII format)</td>206 <td> false</td>207 <td> No</td>330 <td>targetoption</td> 331 <td>String</td> 332 <td>Option to use when target directory exists, accepts <em>replace</em>, <em>merge</em>, <em>update</em> and <em>rename</em></td> 333 <td>none</td> 334 <td>No</td> 335 </tr> 336 <tr> 337 <td>todir</td> 338 <td>String</td> 339 <td>Path to save encoded files to</td> 340 <td>none</td> 341 <td>Yes</td> 208 342 </tr> 209 343 <tr> … … 213 347 <td>false</td> 214 348 <td>No</td> 215 </tr>216 <tr>217 <td>optimize</td>218 <td>String</td>219 <td>Controls the optimization of the encoded files, accepts either <em>more</em> or <em>max</em></td>220 <td>none</td>221 <td>No</td>222 </tr>223 <tr>224 <td>licensepath</td>225 <td>String</td>226 <td>Path to the license file that will be used by the encoded files</td>227 <td>none</td>228 <td>No</td>229 </tr>230 <tr>231 <td>passphrase</td>232 <td>String</td>233 <td>The passphrase to use when encoding with a license file</td>234 <td>none</td>235 <td>No</td>236 </tr>237 <tr>238 <td>targetoption</td>239 <td>String</td>240 <td>Option to use when target directory exists, accepts <em>replace</em>, <em>merge</em>, <em>update</em> and <em>rename</em></td>241 <td>none</td>242 <td>No</td>243 </tr>244 <tr>245 <td>fromdir</td>246 <td>String</td>247 <td>Path containing source files</td>248 <td>none</td>249 <td>Yes</td>250 </tr>251 <tr>252
