NAME

Chroniton::Backup - implements full and incremental backups

EXPORT

None of these subroutines are exported by default. Please load them into your namespace by specifying them on the module load line:

    use Chroniton::Backup qw(backup);

backup($config, $log, \@sources, $destination, [$against])

Perfoms a backup of each file in @sources to a new subdirectory of $destination. If $against is specified, an incremental backup is performed by comparing the files in each of @sources to the identically named files in $against. If the files are the same, the new file in $destination is linked to the version in $against (instead of being copied from the $source).

Returns a BackupSet object. Dies on a fatal error, otherwise logs errors and warnings to $log, a Chroniton::Messages object.

_clone_dir($config, $log, $contents, $src, $dest, [$against, $compare_ref])

Clones $src into $dest, recursively decending into subdirectories, depth first. If $against is specified, each file in $src is compared against the file of the same name in $against via the $compare_ref subroutine. This routine should return 1 if the file from $src needs to be copied to $dest, or 0 if the file placed in $dest should be a (relative) symbolic link to the file in $against.

Returns nothing. Dies on a fatal error, otherwise logs errors and warnings to $log, a Chroniton::Messages object.