-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathdatadir-patcher.php
More file actions
51 lines (42 loc) · 1.88 KB
/
datadir-patcher.php
File metadata and controls
51 lines (42 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
require dirname(__FILE__) .'/lib/patcher_functions.class.php';
require dirname(__FILE__) .'/lib/base/BaseDeploy.class.php';
require dirname(__FILE__) .'/lib/Deploy.class.php';
require dirname(__FILE__) .'/lib/exceptions/DeployException.class.php';
if ($_SERVER['argc'] <= 2)
throw new DeployException('Welke dirs?');
$path = findRootPath($_SERVER['argv'][0], __FILE__);
$args = parseArgs($_SERVER['argv']);
$datadir_prefix = $args['datadir-prefix'];
$previous_dir = $args['previous-dir'];
unset($args['datadir-prefix'], $args['target-dir'], $args['previous-dir']);
foreach ($args as $dirname)
{
$relative_path_offset = preg_replace('#[^/]+#', '..', $dirname);
// datadirectories horen niet mee te komen met de upload, maar als ze er toch staan.. byebye
if (is_dir($dirname) && !is_link($dirname))
{
echo "rmdir($dirname)\n";
rmdir($dirname);
}
// als het al een symlink is, met rust laten
elseif (is_link($dirname))
{
echo "$dirname is al een symlink\n";
continue;
}
// als er niets staat op de doellocatie kan er een symlink worden gemaakt naar dezelfde locatie binnen de datadir
if (!file_exists($dirname))
{
echo "symlink($relative_path_offset/$datadir_prefix/$dirname, $dirname)\n";
symlink("$relative_path_offset/$datadir_prefix/$dirname", $dirname);
}
// als deze directory in de vorige deployment nog wel bestond als directory dan was dat die nog niet gesplitst, dus die nu splitsen
if ($previous_dir && is_dir("../$previous_dir/$dirname") && !is_link("../$previous_dir/$dirname"))
{
echo "rename(../$previous_dir/$dirname, ../$datadir_prefix/$dirname)\n";
rename("../$previous_dir/$dirname", "../$datadir_prefix/$dirname");
echo "symlink($relative_path_offset/$datadir_prefix/$dirname, ../$previous_dir/$dirname)\n";
symlink("$relative_path_offset/$datadir_prefix/$dirname", "../$previous_dir/$dirname");
}
}