2015-06-17 18:53:33 +02:00
|
|
|
####################################################################################################################################
|
|
|
|
# FILE COMMON MODULE
|
|
|
|
####################################################################################################################################
|
|
|
|
package BackRest::FileCommon;
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings FATAL => qw(all);
|
|
|
|
use Carp qw(confess);
|
|
|
|
|
|
|
|
use Exporter qw(import);
|
|
|
|
use File::Basename qw(dirname);
|
|
|
|
use IO::Handle;
|
|
|
|
|
|
|
|
use lib dirname($0) . '/../lib';
|
|
|
|
use BackRest::Exception;
|
|
|
|
use BackRest::Utility;
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# Operation constants
|
|
|
|
####################################################################################################################################
|
2015-08-05 14:43:41 +02:00
|
|
|
use constant OP_FILE_COMMON => 'FileCommon';
|
2015-06-17 18:53:33 +02:00
|
|
|
|
2015-08-05 14:43:41 +02:00
|
|
|
use constant OP_FILE_COMMON_PATH_SYNC => OP_FILE_COMMON . '::filePathSync';
|
2015-06-17 18:53:33 +02:00
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# filePathSync
|
|
|
|
#
|
|
|
|
# Sync a directory.
|
|
|
|
####################################################################################################################################
|
|
|
|
sub filePathSync
|
|
|
|
{
|
|
|
|
my $strPath = shift;
|
|
|
|
|
2015-08-05 14:43:41 +02:00
|
|
|
logTrace(OP_FILE_COMMON_PATH_SYNC, DEBUG_CALL, undef, {path => \$strPath});
|
2015-06-17 21:33:58 +02:00
|
|
|
|
2015-06-17 18:53:33 +02:00
|
|
|
open(my $hPath, "<", $strPath)
|
|
|
|
or confess &log(ERROR, "unable to open ${strPath}", ERROR_PATH_OPEN);
|
|
|
|
open(my $hPathDup, ">&", $hPath)
|
|
|
|
or confess &log(ERROR, "unable to duplicate handle for ${strPath}", ERROR_PATH_OPEN);
|
|
|
|
|
|
|
|
$hPathDup->sync
|
|
|
|
or confess &log(ERROR, "unable to sync ${strPath}", ERROR_PATH_SYNC);
|
|
|
|
}
|
|
|
|
|
|
|
|
our @EXPORT = qw(filePathSync);
|
|
|
|
|
|
|
|
1;
|