1 |
wellsi |
1.1 |
diff -ruN e-smith-backup-2.4.0.old/root/etc/e-smith/events/actions/workstation-backup-dar e-smith-backup-2.4.0/root/etc/e-smith/events/actions/workstation-backup-dar |
2 |
|
|
--- e-smith-backup-2.4.0.old/root/etc/e-smith/events/actions/workstation-backup-dar 2013-12-12 21:37:57.000000000 -0800 |
3 |
|
|
+++ e-smith-backup-2.4.0/root/etc/e-smith/events/actions/workstation-backup-dar 2013-12-12 22:01:28.000000000 -0800 |
4 |
|
|
@@ -3,17 +3,17 @@ |
5 |
|
|
#---------------------------------------------------------------------- |
6 |
|
|
# copyright (C) 2006-2007 Jean-Paul Leclere <jean-paul@leclere.org> |
7 |
|
|
# copyright (C) 2007 Charlie Brady <charlieb@e-smith.com> |
8 |
|
|
-# |
9 |
|
|
+# |
10 |
|
|
# This program is free software; you can redistribute it and/or modify |
11 |
|
|
# it under the terms of the GNU General Public License as published by |
12 |
|
|
# the Free Software Foundation; either version 2 of the License, or |
13 |
|
|
# (at your option) any later version. |
14 |
|
|
-# |
15 |
|
|
+# |
16 |
|
|
# This program is distributed in the hope that it will be useful, |
17 |
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
18 |
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
19 |
|
|
# GNU General Public License for more details. |
20 |
|
|
-# |
21 |
|
|
+# |
22 |
|
|
# You should have received a copy of the GNU General Public License |
23 |
|
|
# along with this program; if not, write to the Free Software |
24 |
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
25 |
|
|
@@ -98,18 +98,18 @@ |
26 |
|
|
# ping the SMB Host to see if it is awake |
27 |
|
|
|
28 |
|
|
if (defined($smbhostmac) && (system("ping -c1 $smbhost > /dev/null") != 0)) { |
29 |
|
|
- $report .= "$smbhost might be asleep, attempting to wake\n"; |
30 |
|
|
- system("ether-wake -i $ether $smbhostmac"); |
31 |
|
|
- $report .= "Waiting $smbhostdelay seconds...\n"; |
32 |
|
|
- sleep $smbhostdelay; |
33 |
|
|
+ $report .= "$smbhost might be asleep, attempting to wake\n"; |
34 |
|
|
+ system("ether-wake -i $ether $smbhostmac"); |
35 |
|
|
+ $report .= "Waiting $smbhostdelay seconds...\n"; |
36 |
|
|
+ sleep $smbhostdelay; |
37 |
|
|
} |
38 |
|
|
|
39 |
|
|
# verify backup directory not already mounted |
40 |
|
|
if (!&checkMount ($mntdir)) |
41 |
|
|
{ |
42 |
|
|
ldie("Seems backup directory is already mounted. " . |
43 |
|
|
- "It should not happen and maybe there is a zombie process " . |
44 |
|
|
- "you must kill, or another backup in progress. \n"); |
45 |
|
|
+ "It should not happen and maybe there is a zombie process " . |
46 |
|
|
+ "you must kill, or another backup in progress. \n"); |
47 |
|
|
} |
48 |
|
|
|
49 |
|
|
# create the directory mount point if it does not exist |
50 |
|
|
@@ -133,14 +133,13 @@ |
51 |
|
|
} |
52 |
|
|
|
53 |
|
|
# rotating backup indicators |
54 |
|
|
- |
55 |
|
|
-++$incnum; |
56 |
|
|
+$incnum++; |
57 |
|
|
$incnum = 0 if ($dow == $fullday && $incnum > $daysinset-7) || |
58 |
|
|
($fullday == 7 && $incnum >= $daysinset); |
59 |
|
|
if ($incnum == 0) |
60 |
|
|
{ |
61 |
|
|
$setnum %= $setsmax; |
62 |
|
|
- ++$setnum; |
63 |
|
|
+ $setnum++; |
64 |
|
|
} |
65 |
|
|
|
66 |
|
|
# if no set directory, make it |
67 |
|
|
@@ -158,7 +157,6 @@ |
68 |
|
|
} |
69 |
|
|
$report .= "Destination //$smbhost/$smbshare/$id/$setname\n"; |
70 |
|
|
|
71 |
|
|
- |
72 |
|
|
if ( $incnum == 0 ) |
73 |
|
|
{ |
74 |
|
|
$bkname = "full-" . $bkname; |
75 |
|
|
@@ -171,26 +169,26 @@ |
76 |
|
|
opendir(DIR, $setdirname) or ldie("Can't open dir $setdirname $!"); |
77 |
|
|
while (defined($file = readdir(DIR))) |
78 |
|
|
{ |
79 |
|
|
- next if $file =~ /^\.\.?$/; |
80 |
|
|
- if ($file =~ /dar$/) |
81 |
|
|
- { |
82 |
|
|
- $ref = $file; |
83 |
|
|
- } |
84 |
|
|
+ next if $file =~ /^\.\.?$/; |
85 |
|
|
+ if ($file =~ /dar$/) |
86 |
|
|
+ { |
87 |
|
|
+ $ref = $file; |
88 |
|
|
+ } |
89 |
|
|
} |
90 |
|
|
closedir (DIR); |
91 |
|
|
# if no reference do full backup |
92 |
|
|
if ($ref eq "") |
93 |
|
|
{ |
94 |
|
|
- $incnum = 0; |
95 |
|
|
- $report .= "No existing reference backup, will make full backup \n"; |
96 |
|
|
- $bkname = "full-" . $bkname; |
97 |
|
|
+ $incnum = 0; |
98 |
|
|
+ $report .= "No existing reference backup, will make full backup \n"; |
99 |
|
|
+ $bkname = "full-" . $bkname; |
100 |
|
|
} |
101 |
|
|
else |
102 |
|
|
{ |
103 |
|
|
- # removing .dar extension |
104 |
|
|
- $ref =~ s/\..*\.dar$//; |
105 |
|
|
- $ref = "--ref|" . $setdirname . "/" . $ref; # | will be used to split this string in run_backup() |
106 |
|
|
- $bkname = "inc-" . sprintf("%03d", $incnum) . "-". $bkname; |
107 |
|
|
+ # removing .dar extension |
108 |
|
|
+ $ref =~ s/\..*\.dar$//; |
109 |
|
|
+ $ref = "--ref|" . $setdirname . "/" . $ref; # | will be used to split this string in run_backup() |
110 |
|
|
+ $bkname = "inc-" . sprintf("%03d", $incnum) . "-". $bkname; |
111 |
|
|
} |
112 |
|
|
} |
113 |
|
|
|
114 |
|
|
@@ -244,7 +242,7 @@ |
115 |
|
|
foreach (bsd_glob("$tmpdir/$id/$bkname*")) |
116 |
|
|
{ |
117 |
|
|
ldie("Error while moving backup file $_ from temporary dir $tmpdir/$id to $setdirname : $!") |
118 |
|
|
- unless move($_, $setdirname); |
119 |
|
|
+ unless move($_, $setdirname); |
120 |
|
|
} |
121 |
|
|
&removeTree ("$tmpdir/$id"); |
122 |
|
|
} |
123 |
|
|
@@ -274,8 +272,8 @@ |
124 |
|
|
my $catalog = "$mntbkdir/dar-catalog"; |
125 |
|
|
unless ( -e $catalog) # Create an empty catalog if none found |
126 |
|
|
{ |
127 |
|
|
- system("/usr/bin/dar_manager", "-Q", "-C", "$catalog") == 0 |
128 |
|
|
- or ldie("Unable to create dar_manager catalog.\n"); |
129 |
|
|
+ system("/usr/bin/dar_manager", "-Q", "-C", "$catalog") == 0 |
130 |
|
|
+ or ldie("Unable to create dar_manager catalog.\n"); |
131 |
|
|
} |
132 |
|
|
|
133 |
|
|
# sleep added to ensure the creation of a valid catalog |
134 |
|
|
@@ -285,7 +283,7 @@ |
135 |
|
|
|
136 |
|
|
find { wanted => \&$setbackuplist, untaint => 1 }, $mntbkdir ; |
137 |
|
|
|
138 |
|
|
-# find backups in current catalog |
139 |
|
|
+# find backups in current catalog |
140 |
|
|
|
141 |
|
|
my $i = 0; |
142 |
|
|
my @bknum; |
143 |
|
|
@@ -295,10 +293,10 @@ |
144 |
|
|
|
145 |
|
|
while (<DAR_LIST>) |
146 |
|
|
{ |
147 |
|
|
- next unless ($_ =~ /set/); |
148 |
|
|
- chomp; |
149 |
|
|
- ($bknum[$i], $setd[$i], $bkname[$i]) = split(' ', $_, 3); |
150 |
|
|
- $i++; |
151 |
|
|
+ next unless ($_ =~ /set/); |
152 |
|
|
+ chomp; |
153 |
|
|
+ ($bknum[$i], $setd[$i], $bkname[$i]) = split(' ', $_, 3); |
154 |
|
|
+ $i++; |
155 |
|
|
} |
156 |
|
|
close (DAR_LIST); |
157 |
|
|
|
158 |
|
|
@@ -307,51 +305,51 @@ |
159 |
|
|
my $j = $i; |
160 |
|
|
while ($j) |
161 |
|
|
{ |
162 |
|
|
- unless (-e "$setd[$j-1]/$bkname[$j-1]\.1\.dar") |
163 |
|
|
- { |
164 |
|
|
- my $del = $bknum[$j-1]; |
165 |
|
|
- if ($del =~ /^(.*)$/) |
166 |
|
|
- { |
167 |
|
|
- $del = $1; |
168 |
|
|
- } |
169 |
|
|
- system("/usr/bin/dar_manager", "-Q", "-B", "$catalog", "-D", "$del") == 0 |
170 |
|
|
- or ldie("Failed to delete set $del from catalog.\n"); |
171 |
|
|
- } |
172 |
|
|
- $j--; |
173 |
|
|
+ unless (-e "$setd[$j-1]/$bkname[$j-1]\.1\.dar") |
174 |
|
|
+ { |
175 |
|
|
+ my $del = $bknum[$j-1]; |
176 |
|
|
+ if ($del =~ /^(.*)$/) |
177 |
|
|
+ { |
178 |
|
|
+ $del = $1; |
179 |
|
|
+ } |
180 |
|
|
+ system("/usr/bin/dar_manager", "-Q", "-B", "$catalog", "-D", "$del") == 0 |
181 |
|
|
+ or ldie("Failed to delete set $del from catalog.\n"); |
182 |
|
|
+ } |
183 |
|
|
+ $j--; |
184 |
|
|
} |
185 |
|
|
|
186 |
|
|
# add to catalog new backups |
187 |
|
|
|
188 |
|
|
foreach $key (sort keys %backupfiles) |
189 |
|
|
{ |
190 |
|
|
- my $exists = 0; |
191 |
|
|
- my $rf; |
192 |
|
|
- foreach $rf (@bkname) |
193 |
|
|
- { |
194 |
|
|
- $exists = 1 if ($rf eq $backupfiles{$key}[1]); |
195 |
|
|
- last if $exists; |
196 |
|
|
- } |
197 |
|
|
- do |
198 |
|
|
- { |
199 |
|
|
- my $add = "$mntbkdir/$backupfiles{$key}[0]/$backupfiles{$key}[1]"; |
200 |
|
|
- if ($add =~ /^(.*)$/) |
201 |
|
|
- { |
202 |
|
|
- $add = $1; |
203 |
|
|
- } |
204 |
|
|
- system("/usr/bin/dar_manager", "-Q", "-B", "$catalog", "-A", "$add") == 0 |
205 |
|
|
- or ldie("Failed to add set $add to catalog.\n"); |
206 |
|
|
- } unless $exists; |
207 |
|
|
+ my $exists = 0; |
208 |
|
|
+ my $rf; |
209 |
|
|
+ foreach $rf (@bkname) |
210 |
|
|
+ { |
211 |
|
|
+ $exists = 1 if ($rf eq $backupfiles{$key}[1]); |
212 |
|
|
+ last if $exists; |
213 |
|
|
+ } |
214 |
|
|
+ do |
215 |
|
|
+ { |
216 |
|
|
+ my $add = "$mntbkdir/$backupfiles{$key}[0]/$backupfiles{$key}[1]"; |
217 |
|
|
+ if ($add =~ /^(.*)$/) |
218 |
|
|
+ { |
219 |
|
|
+ $add = $1; |
220 |
|
|
+ } |
221 |
|
|
+ system("/usr/bin/dar_manager", "-Q", "-B", "$catalog", "-A", "$add") == 0 |
222 |
|
|
+ or ldie("Failed to add set $add to catalog.\n"); |
223 |
|
|
+ } unless $exists; |
224 |
|
|
} |
225 |
|
|
|
226 |
|
|
# Check free disk space |
227 |
|
|
my $df = qx(/bin/df -Ph \"$mntdir\"); |
228 |
|
|
if ($df =~ /(\S+)\s+(\S+)\s+(\S+)\s+(\d*%)/) |
229 |
|
|
{ |
230 |
|
|
- $report .= "Destination disk usage $2, $4 full, $3 available\n"; |
231 |
|
|
+ $report .= "Destination disk usage $2, $4 full, $3 available\n"; |
232 |
|
|
} |
233 |
|
|
else |
234 |
|
|
{ |
235 |
|
|
- $report .= "Destination disk space not available\n"; |
236 |
|
|
+ $report .= "Destination disk space not available\n"; |
237 |
|
|
} |
238 |
|
|
|
239 |
|
|
# unmount shared folder |
240 |
|
|
@@ -382,10 +380,10 @@ |
241 |
|
|
$report .= $errmsg; |
242 |
|
|
if (($mail eq 'yes') || ($mail eq 'error')) |
243 |
|
|
{ |
244 |
|
|
- open (MAIL, "|/var/qmail/bin/qmail-inject") |
245 |
|
|
- || die "Cannot start mail program: $!: message was $errmsg\n"; |
246 |
|
|
- print MAIL $report; |
247 |
|
|
- close(MAIL); |
248 |
|
|
+ open (MAIL, "|/var/qmail/bin/qmail-inject") |
249 |
|
|
+ || die "Cannot start mail program: $!: message was $errmsg\n"; |
250 |
|
|
+ print MAIL $report; |
251 |
|
|
+ close(MAIL); |
252 |
|
|
} |
253 |
|
|
system("/bin/umount", "$mntdir") if (!&checkMount ($mntdir)); |
254 |
|
|
die($errmsg); |
255 |
|
|
@@ -394,68 +392,75 @@ |
256 |
|
|
sub start_dar_killer |
257 |
|
|
{ |
258 |
|
|
my ($darpid, $gracetime) = @_; |
259 |
|
|
- my $tick = $gracetime/10; |
260 |
|
|
- |
261 |
|
|
+ my $tick = $gracetime/10; |
262 |
|
|
+ |
263 |
|
|
my $killer = fork; |
264 |
|
|
return $killer if $killer; |
265 |
|
|
|
266 |
|
|
- POSIX::setsid; |
267 |
|
|
- chdir '/'; |
268 |
|
|
- #fork && exit; |
269 |
|
|
- |
270 |
|
|
- # wait for timeout or backup termination |
271 |
|
|
- while ($tick > 0) { |
272 |
|
|
- sleep 10; |
273 |
|
|
- $tick--; |
274 |
|
|
- exit unless (kill(0, $darpid)); |
275 |
|
|
- } |
276 |
|
|
- |
277 |
|
|
- if (kill(0, $darpid)) { |
278 |
|
|
- while (kill('QUIT', $darpid) != 1) { |
279 |
|
|
- warn "Failed to stop $darpid dar process\n"; |
280 |
|
|
- } |
281 |
|
|
- } |
282 |
|
|
- warn "Partial backup stored on backup workstation.\n", |
283 |
|
|
- "Session cleanly closed by timeout after $timeout seconds.\n", |
284 |
|
|
- "Not an error, backup process will continue next night.\n"; |
285 |
|
|
+ POSIX::setsid; |
286 |
|
|
+ chdir '/'; |
287 |
|
|
+ #fork && exit; |
288 |
|
|
+ |
289 |
|
|
+ # wait for timeout or backup termination |
290 |
|
|
+ while ($tick > 0) |
291 |
|
|
+ { |
292 |
|
|
+ sleep 10; |
293 |
|
|
+ $tick--; |
294 |
|
|
+ exit unless (kill(0, $darpid)); |
295 |
|
|
+ } |
296 |
|
|
|
297 |
|
|
- exit; |
298 |
|
|
+ if (kill(0, $darpid)) |
299 |
|
|
+ { |
300 |
|
|
+ while (kill('QUIT', $darpid) != 1) |
301 |
|
|
+ { |
302 |
|
|
+ warn "Failed to stop $darpid dar process\n"; |
303 |
|
|
+ } |
304 |
|
|
+ } |
305 |
|
|
+ warn "Partial backup stored on backup workstation.\n", |
306 |
|
|
+ "Session cleanly closed by timeout after $timeout seconds.\n", |
307 |
|
|
+ "Not an error, backup process will continue next night.\n"; |
308 |
|
|
+ |
309 |
|
|
+ exit; |
310 |
|
|
} |
311 |
|
|
|
312 |
|
|
sub run_backup |
313 |
|
|
{ |
314 |
|
|
- my $dest = shift; |
315 |
|
|
+ my $dest = shift; |
316 |
|
|
my $data = undef; |
317 |
|
|
my $pid = undef; |
318 |
|
|
my $killerpid = undef; |
319 |
|
|
|
320 |
|
|
- eval { |
321 |
|
|
- ($pid = open INPUT, "-|", "/usr/bin/dar", "-Q", "--create", "$dest", split(/\|/,$ref), "-B", "/etc/dar/$job.dcf") or ldie("cannot start : $!" ); |
322 |
|
|
+ eval |
323 |
|
|
+ { |
324 |
|
|
+ ($pid = open INPUT, "-|", "/usr/bin/dar", "-Q", "--create", "$dest", split(/\|/,$ref), "-B", "/etc/dar/$job.dcf") or ldie("cannot start : $!" ); |
325 |
|
|
|
326 |
|
|
- if ($pid) { |
327 |
|
|
- $killerpid = start_dar_killer($pid, $timeout); } |
328 |
|
|
- $data = do { local($/); <INPUT> }; |
329 |
|
|
- }; |
330 |
|
|
- $report .= $data; |
331 |
|
|
- |
332 |
|
|
- if ($killerpid && kill(0, $killerpid)) { |
333 |
|
|
- while (kill('TERM', $killerpid) != 1) { |
334 |
|
|
- warn "Failed to kill $killerpid killer process\n"; |
335 |
|
|
- } |
336 |
|
|
- |
337 |
|
|
- waitpid($killerpid, 0); |
338 |
|
|
- } |
339 |
|
|
- |
340 |
|
|
- waitpid($pid, 0); |
341 |
|
|
- my $code = WEXITSTATUS($?); |
342 |
|
|
- close(INPUT); |
343 |
|
|
- return $code; |
344 |
|
|
+ if ($pid) |
345 |
|
|
+ { |
346 |
|
|
+ $killerpid = start_dar_killer($pid, $timeout); |
347 |
|
|
+ } |
348 |
|
|
+ $data = do { local($/); <INPUT> }; |
349 |
|
|
+ }; |
350 |
|
|
+ $report .= $data; |
351 |
|
|
+ |
352 |
|
|
+ if ($killerpid && kill(0, $killerpid)) |
353 |
|
|
+ { |
354 |
|
|
+ while (kill('TERM', $killerpid) != 1) |
355 |
|
|
+ { |
356 |
|
|
+ warn "Failed to kill $killerpid killer process\n"; |
357 |
|
|
+ } |
358 |
|
|
+ waitpid($killerpid, 0); |
359 |
|
|
+ } |
360 |
|
|
+ |
361 |
|
|
+ waitpid($pid, 0); |
362 |
|
|
+ my $code = WEXITSTATUS($?); |
363 |
|
|
+ close(INPUT); |
364 |
|
|
+ return $code; |
365 |
|
|
} |
366 |
|
|
|
367 |
|
|
|
368 |
|
|
sub checkMount |
369 |
|
|
{ |
370 |
|
|
- # check if $mountdir is mounted |
371 |
|
|
+ # check if $mountdir is mounted |
372 |
|
|
my $mountdir = shift; |
373 |
|
|
return system("/bin/mountpoint", "-q", "$mountdir"); |
374 |
|
|
} |
375 |
|
|
@@ -472,44 +477,45 @@ |
376 |
|
|
|
377 |
|
|
if ($VFSType eq 'cifs') |
378 |
|
|
{ |
379 |
|
|
- return ( qx(/bin/mount -t cifs "//$host/$share" $mountdir -o credentials=/etc/dar/CIFScredentials,nounix 2>&1) ); |
380 |
|
|
+ return ( qx(/bin/mount -t cifs "//$host/$share" $mountdir -o credentials=/etc/dar/CIFScredentials,nounix 2>&1) ); |
381 |
|
|
} |
382 |
|
|
elsif ($VFSType eq 'nfs') |
383 |
|
|
{ |
384 |
|
|
- return ( qx(/bin/mount -t nfs -o nolock "$host:/$share" $mountdir 2>&1) ); |
385 |
|
|
+ return ( qx(/bin/mount -t nfs -o nolock "$host:/$share" $mountdir 2>&1) ); |
386 |
|
|
} |
387 |
|
|
elsif ($VFSType eq 'usb') |
388 |
|
|
{ |
389 |
|
|
- $_[2] = "/" . $share; |
390 |
|
|
+ $_[2] = "/" . $share; |
391 |
|
|
my $device = ""; |
392 |
|
|
my $blkdev = ""; |
393 |
|
|
my $vollbl = ""; |
394 |
|
|
- foreach my $udi (qx(hal-find-by-property --key volume.fsusage --string filesystem)) { |
395 |
|
|
- $udi =~ m/^(\S+)/; |
396 |
|
|
- my $is_mounted = qx(hal-get-property --udi $1 --key volume.is_mounted); |
397 |
|
|
- |
398 |
|
|
- if ($is_mounted eq "false\n") { |
399 |
|
|
- $blkdev = qx(hal-get-property --udi $1 --key block.device); |
400 |
|
|
- if ($blkdev =~ m/^(\S+)/) {$blkdev = $1;} |
401 |
|
|
- } |
402 |
|
|
- if ($is_mounted eq "false\n") { |
403 |
|
|
- $vollbl = qx(hal-get-property --udi $1 --key volume.label); |
404 |
|
|
- $vollbl =~ m/^(\S+)/; |
405 |
|
|
- if ($vollbl =~ /^\s/) {$vollbl = 'nolabel';} |
406 |
|
|
- } |
407 |
|
|
- |
408 |
|
|
- chomp $vollbl; |
409 |
|
|
- chomp $blkdev; |
410 |
|
|
- $vollbl = "media/$vollbl"; |
411 |
|
|
- if ($vollbl eq $share) { |
412 |
|
|
- $device = $blkdev; |
413 |
|
|
- } |
414 |
|
|
+ foreach my $udi (qx(hal-find-by-property --key volume.fsusage --string filesystem)) |
415 |
|
|
+ { |
416 |
|
|
+ $udi =~ m/^(\S+)/; |
417 |
|
|
+ my $is_mounted = qx(hal-get-property --udi $1 --key volume.is_mounted); |
418 |
|
|
+ |
419 |
|
|
+ if ($is_mounted eq "false\n") |
420 |
|
|
+ { |
421 |
|
|
+ $blkdev = qx(hal-get-property --udi $1 --key block.device); |
422 |
|
|
+ if ($blkdev =~ m/^(\S+)/) {$blkdev = $1;} |
423 |
|
|
+ } |
424 |
|
|
+ if ($is_mounted eq "false\n") |
425 |
|
|
+ { |
426 |
|
|
+ $vollbl = qx(hal-get-property --udi $1 --key volume.label); |
427 |
|
|
+ $vollbl =~ m/^(\S+)/; |
428 |
|
|
+ if ($vollbl =~ /^\s/) {$vollbl = 'nolabel';} |
429 |
|
|
+ } |
430 |
|
|
+ |
431 |
|
|
+ chomp $vollbl; |
432 |
|
|
+ chomp $blkdev; |
433 |
|
|
+ $vollbl = "media/$vollbl"; |
434 |
|
|
+ if ($vollbl eq $share) {$device = $blkdev;} |
435 |
|
|
} |
436 |
|
|
return ( qx(/bin/mount $device "/$share" 2>&1) ); |
437 |
|
|
} |
438 |
|
|
else |
439 |
|
|
{ |
440 |
|
|
- return ("Mount of type $VFSType not supported.\n"); |
441 |
|
|
+ return ("Mount of type $VFSType not supported.\n"); |
442 |
|
|
} |
443 |
|
|
} |
444 |
|
|
|
445 |
|
|
@@ -521,7 +527,7 @@ |
446 |
|
|
{ |
447 |
|
|
eval {remove_tree("$tree")}; |
448 |
|
|
ldie("Error while deleting $tree : $@.\n") if $@; |
449 |
|
|
- } |
450 |
|
|
+ } |
451 |
|
|
} |
452 |
|
|
|
453 |
|
|
sub createTree |
454 |
|
|
@@ -530,6 +536,6 @@ |
455 |
|
|
if (! -d "$tree") |
456 |
|
|
{ |
457 |
|
|
eval {make_path("$tree")}; |
458 |
|
|
- ldie("Error while creating $tree : $@. Maybe insufficient rights directory.\n") if $@; |
459 |
|
|
+ ldie("Error while creating $tree : $@. Maybe insufficient rights directory.\n") if $@; |
460 |
|
|
} |
461 |
|
|
} |