summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSExport/ExportType/NFS.pm
diff options
context:
space:
mode:
Diffstat (limited to 'installer/OpenSLX/OSExport/ExportType/NFS.pm')
-rw-r--r--installer/OpenSLX/OSExport/ExportType/NFS.pm34
1 files changed, 34 insertions, 0 deletions
diff --git a/installer/OpenSLX/OSExport/ExportType/NFS.pm b/installer/OpenSLX/OSExport/ExportType/NFS.pm
index 8bb8ae48..b25736b8 100644
--- a/installer/OpenSLX/OSExport/ExportType/NFS.pm
+++ b/installer/OpenSLX/OSExport/ExportType/NFS.pm
@@ -46,9 +46,43 @@ sub exportVendorOS
$self->addTargetToNfsExports($target);
}
+sub purgeExport
+{
+ my $self = shift;
+ my $target = shift;
+
+ if (system("rm -r $target")) {
+ vlog 0, _tr("unable to remove export '%s'!", $target);
+ return 0;
+ }
+ 1;
+}
+
################################################################################
### implementation methods
################################################################################
+sub copyViaRsync
+{
+ my $self = shift;
+ my $source = shift;
+ my $target = shift;
+
+ if (system("mkdir -p $target")) {
+ die _tr("unable to create directory '%s', giving up! (%s)\n",
+ $target, $!);
+ }
+ my $includeExcludeList = $self->determineIncludeExcludeList();
+ vlog 1, _tr("using include-exclude-filter:\n%s\n", $includeExcludeList);
+ open(RSYNC, "| rsync -av --delete --exclude-from=- $source/ $target")
+ or die _tr("unable to start rsync for source '%s', giving up! (%s)",
+ $source, $!);
+ print RSYNC $includeExcludeList;
+ if (!close(RSYNC)) {
+ die _tr("unable to export to target '%s', giving up! (%s)",
+ $target, $!);
+ }
+}
+
sub addTargetToNfsExports
{
my $self = shift;