19 declare(strict_types=1);
39 string $source_folder,
40 string $target_folder,
41 bool $data_dir =
false,
55 return hash(
"sha256", self::class . $this->
getSourceName($this->source_folder) . $this->target_folder);
64 return "Copy directory from $source to $this->target_folder.";
94 $ini = $environment->getResource(
Setup\Environment::RESOURCE_ILIAS_INI);
96 $root =
$ini->readVariable(
"server",
"absolute_path");
98 if ($this->data_dir) {
99 $root =
$ini->readVariable(
"clients",
"datadir");
105 if (file_exists($this->target_folder)) {
108 mkdir($this->target_folder, 0755);
113 RecursiveIteratorIterator::SELF_FIRST
117 foreach ($iterator as $item) {
118 if ($item->isDir()) {
119 mkdir($this->target_folder . DIRECTORY_SEPARATOR . $iterator->getSubPathname());
121 copy($item->getPathname(), $this->target_folder . DIRECTORY_SEPARATOR . $iterator->getSubPathname());
137 $ini = $environment->getResource(
Setup\Environment::RESOURCE_ILIAS_INI);
139 $root =
$ini->readVariable(
"server",
"absolute_path");
140 if ($this->data_dir) {
141 $root =
$ini->readVariable(
"clients",
"datadir");
148 file_exists($source) &&
149 is_writable(pathinfo($this->target_folder, PATHINFO_DIRNAME))
157 RecursiveIteratorIterator::CHILD_FIRST
160 foreach ($files as $file_info) {
161 if ($file_info->isDir()) {
162 rmdir($file_info->getRealPath());
165 unlink($file_info->getRealPath());
171 if ($source !==
"") {
175 if ($this->data_dir) {
176 return "ilias data dir";
deleteDirRecursive(string $path)
getPreconditions(Setup\Environment $environment)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
An environment holds resources to be used in the setup process.
getSourceName(string $source)
__construct(string $source_folder, string $target_folder, bool $data_dir=false, bool $bare=false)
Copies a directory from ILIAS root or from the outer ILIAS data directory depending on the flag $data...