diff options
Diffstat (limited to 'solenv/bin/modules/pre2par/systemactions.pm')
-rw-r--r-- | solenv/bin/modules/pre2par/systemactions.pm | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/solenv/bin/modules/pre2par/systemactions.pm b/solenv/bin/modules/pre2par/systemactions.pm new file mode 100644 index 000000000..7848b6495 --- /dev/null +++ b/solenv/bin/modules/pre2par/systemactions.pm @@ -0,0 +1,81 @@ +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This file incorporates work covered by the following license notice: +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed +# with this work for additional information regarding copyright +# ownership. The ASF licenses this file to you under the Apache +# License, Version 2.0 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.apache.org/licenses/LICENSE-2.0 . +# + + +package pre2par::systemactions; + +use File::Copy; +use pre2par::exiter; +use pre2par::globals; + +###################################################### +# Creating a new directory +###################################################### + +sub create_directory +{ + my ($directory) = @_; + + my $returnvalue = 1; + my $infoline = ""; + + if ($directory eq "" ) + { + return 0; + } + + if (!(-d $directory)) + { + $returnvalue = mkdir($directory, 0775); + + if ($returnvalue) + { + $infoline = "Created directory: $directory\n"; + push(@pre2par::globals::logfileinfo, $infoline); + + if ($pre2par::globals::isunix) + { + my $localcall = "chmod 775 $directory \>\/dev\/null 2\>\&1"; + system($localcall); + } + } + else + { + # New solution in parallel packing: It is possible, that the directory now exists, although it + # was not created in this process. There is only an important error, if the directory does not + # exist now. + + if (!(-d $directory)) + { + pre2par::exiter::exit_program("Error: Could not create directory: $directory", "create_directory"); + } + else + { + $infoline = "\nAnother process created this directory in exactly this moment :-) : $directory\n"; + push(@pre2par::globals::logfileinfo, $infoline); + } + } + } + else + { + $infoline = "\nAlready existing directory, did not create: $directory\n"; + push(@pre2par::globals::logfileinfo, $infoline); + } +} + +1; |