CInbox (Common-Inbox)  0.1
Common functionality for ingesting files for archiving.
 All Classes Functions Variables
Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
TaskHashOutput Class Reference
Inheritance diagram for TaskHashOutput:
TaskHash CITask

Public Member Functions

 __construct (&$CIFolder)
 
 init ()
 
 run ()
 
- Public Member Functions inherited from TaskHash
 __construct (&$CIFolder)
 
 loadHashFromFile ($fileName)
 
 getTempHashForFilename ($fileName)
 
 getHashTypesAllowed ()
 
- Public Member Functions inherited from CITask
 __construct (&$CIFolder, $label)
 
 getName ()
 
 setLabel ($label)
 
 getLabel ()
 
 setDescription ($description)
 
 getDescription ()
 
 skip ()
 
 skipIt ()
 
 setItemSubDirs ($itemSubDirs)
 
 getStatus ()
 
 statusUndefined ()
 
 statusRunning ()
 
 statusWait ()
 
 statusDone ()
 
 statusPBCT ()
 
 statusPBC ()
 
 statusSkipped ()
 
 statusError ()
 
 statusConfigError ()
 
 init ()
 
 run ()
 
 finalize ()
 

Public Attributes

const TASK_LABEL = 'Write hash output'
 
const CONF_HASH_OUTPUT = 'HASH_OUTPUT'
 
const CONF_HASH_FILENAME = 'HASH_FILENAME'
 
const CONF_HASH_FILEFORMAT = 'HASH_FILEFORMAT'
 
const OPT_OUTPUT_FILE = 'file'
 
const OPT_OUTPUT_FOLDER = 'folder'
 
const OPT_HASH_FORMAT_GNU = 'gnu'
 
const OPT_HASH_FORMAT_WIN = 'win'
 
const OPT_HASH_FORMAT_MACOS = 'macos'
 
- Public Attributes inherited from TaskHash
const TASK_LABEL = 'Hash Base (abstract)'
 
const CONF_HASH_TYPE = 'HASH_TYPE'
 
- Public Attributes inherited from CITask
const STATUS_UNDEFINED = 0
 Undefined. Default unless task changes it.
 
const STATUS_RUNNING = 1
 Undefined, but indicates that the task is in progress.
 
const STATUS_WAIT = 2
 Task decided that Item is not ready yet and shall be moved back to 'to-do'.
 
const STATUS_DONE = 5
 Success! This means the task completed successfully.
 
const STATUS_PBCT = 6
 There were problems, but the task may continue.
 
const STATUS_PBC = 7
 There were problems, but subsequent task may continue.
 
const STATUS_ERROR = 10
 An error occurred. Abort execution as soon as possible.
 
const STATUS_CONFIG_ERROR = 11
 If a config option was not valid.
 
const STATUS_SKIPPED = 15
 If task was skipped.
 
const ONCE_PER_ITEM = false
 True: Run this task only once per item.
 
const IS_RECURSIVE = false
 Default (false): one task = one folder. True: The task performs actions on subfolders too.
 
const CONF_COPY_EXCLUDE = 'COPY_EXCLUDE'
 Patterns which files to exclude from copying.
 
const MASK_TARGET_TEMP = 'temp_%s'
 

Static Public Attributes

static $OPT_HASH_OUTPUTS
 
static $OPT_HASH_FILEFORMATS
 

Protected Member Functions

 loadSettings ()
 
 isValidHashOutput ($option)
 
 isValidHashFileformat ($option)
 
 formatHash ($outputMask, $hashType, $hashCode, $filename)
 
 writeHashCodeFiles ($hashCodes, $targetFolder)
 
 saveHashesToFile ($file, $contents, $overwrite=false)
 
 appendHashcodes ($targetHashFile, $new)
 
- Protected Member Functions inherited from TaskHash
 loadSettings ()
 
 saveHashToFile ($fileName, $hashCode)
 
 getTempHashForFolder ($folderName)
 
 hashTypeIsAllowed ($hashType)
 
 generateHashcode ($hashType, $fileName)
 
 compareHashcode ($hash1, $hash2)
 
- Protected Member Functions inherited from CITask
 setName ($name)
 
 exclude ($file, $excludePatterns)
 
 optionIsArray ($option, $optionName)
 
 resolveTargetFolderTemp ($CIFolder=null)
 
 setStatus ($status)
 
 setStatusUndefined ()
 
 setStatusRunning ()
 
 setStatusWait ()
 
 setStatusDone ()
 
 setStatusPBCT ()
 
 setStatusPBC ()
 
 setStatusSkipped ()
 
 setStatusError ()
 
 setStatusConfigError ()
 
 checkTempFolder ()
 
 getTempFolder ()
 
 setTempFolder ($tempFolder=null)
 
 loadSettings ()
 

Protected Attributes

 $hashOutput
 
 $hashFilename
 
 $hashFileformat
 
- Protected Attributes inherited from TaskHash
 $hashType
 
- Protected Attributes inherited from CITask
 $logger
 Logging handler.
 
 $name
 Class name of this task.
 
 $label
 Human readable Task label.
 
 $description
 Human readable description of Task's purpose/actions.
 
 $CIFolder
 CIFolder object that provides all information needed for this task.
 
 $sourceFolder
 Source folder of this task.
 
 $targetFolder
 Target folder of this task (read from config).
 
 $targetFolderTemp
 Temporary name of Target folder of this task. Used until inbox processing completed successfully.
 
 $itemSubDirs
 Array of Item subfolders: key=foldername, value=CIFolder (initialized with its config).
 
 $tempFolder
 Path of the temp folder for this task.
 
 $copyExclude
 Contains the value of CONF_COPY_EXCLUDE.
 
 $skip = false
 True: Skip execution. Default=false (=normal execution).
 
 $status
 Status of this task (=for current item subfolder).
 

Additional Inherited Members

- Static Public Member Functions inherited from TaskHash
static getHashTempFilename ($fileName, $CIFolder, $hashType)
 
static removeHashTempFile ($fileName, $CIFolder, $hashType)
 
- Static Public Member Functions inherited from CITask
static isRecursive ()
 
static oncePerItem ()
 
static getTaskByName ($taskName, $CIFolder)
 
static getTaskClassName ($taskName)
 
- Static Protected Attributes inherited from CITask
static $statusGlobal
 Status of the sum of tasks of this type. // TODO! Implement and use this.
 

Detailed Description

Writes the generated source-hashes to target. Format and location can be set in config file.

Author
Peter Bubestinger-Steindl (pb@av.nosp@m.-rd..nosp@m.com)
See also

Member Function Documentation

TaskHashOutput::appendHashcodes (   $targetHashFile,
  $new 
)
protected

Appends new hashcode lines to contents of an existing hashcode file.

The format of the hashcode file should be identical, otherwise the resulting file will be corrupt. Duplicate entries are removed (Works only if format is identical).

Returns the result as array of text-lines.

TaskHashOutput::formatHash (   $outputMask,
  $hashType,
  $hashCode,
  $filename 
)
protected

Returns one line for a hashcode output format, according to the format defined by $hashFormat.

TaskHashOutput::init ( )

Prepare everything so it's ready for processing.

Returns
bool success True if init went fine, False if an error occurred.
TaskHashOutput::isValidHashFileformat (   $option)
protected

Checks if the given mode is a valid option for CONF_HASH_FILEFORMAT. Returns 'true' if it is valid - 'false' if not.

The check is case-sensitive, so you might want to normalize case before calling this.

TaskHashOutput::isValidHashOutput (   $option)
protected

Checks if the given mode is a valid option for CONF_HASH_OUTPUT. Returns 'true' if it is valid - 'false' if not.

The check is case-sensitive, so you might want to normalize case before calling this.

TaskHashOutput::loadSettings ( )
protected

Load settings from config that are relevant for this task.

TaskHashOutput::run ( )

Perform the actual steps of this task.

TaskHashOutput::saveHashesToFile (   $file,
  $contents,
  $overwrite = false 
)
protected

Writes formatted hashcode lines to file. If file exists and $overwrite is false, then hashcode lines will be appended.

appendHashcodes

TaskHashOutput::writeHashCodeFiles (   $hashCodes,
  $targetFolder 
)
protected

Iterates through array $hashCodes and assembles each line for the output hash textfile, according to self::$OPT_HASH_FILEFORMATS.

Depending on the CONF_HASH_OUTPUT mode, the lines are written to the corresponding files on the target.

Existing hashcode files with the same name as defined by CONF_HASH_FILENAME will a) be overwritten (CONF_HASH_OUTPUT = file) b) be merged with the new hashcode lines (CONF_HASH_OUTPUT = folder) Please make sure that the hashcode format is identical in this case, because otherwise the resulting files will not work for automatic validation using tools like md5sum, etc.

Member Data Documentation

TaskHashOutput::$OPT_HASH_FILEFORMATS
static
Initial value:
= array(
self::OPT_HASH_FORMAT_GNU => "[@HASHCODE@] [@FILENAME@]\n",
self::OPT_HASH_FORMAT_WIN => "[@HASHCODE@] [@FILENAME@]\r\n",
self::OPT_HASH_FORMAT_MACOS => "[@FILENAME@] [@HASHCODE@]\n",
)
TaskHashOutput::$OPT_HASH_OUTPUTS
static
Initial value:
= array(
self::OPT_OUTPUT_FILE,
self::OPT_OUTPUT_FOLDER,
)

The documentation for this class was generated from the following file: