-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
buildProject.php
80 lines (61 loc) · 2.68 KB
/
buildProject.php
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
include 'Utilities/versionDetails.php';
$project_details = json_decode(file_get_contents("composer.json"), true); //This get run by composer, so needs to be relative to composer itself
$version_details = new VersionDetails($project_details);
$project_details["version"] = implode(".", [$version_details->major_number,
$version_details->minor_number,
$version_details->patch_number,
$version_details->build_number+1]);
$project_details["build_date"] = date('Y-m-d H:i:s');
fwrite(fopen("composer.json", "w") , json_encode($project_details));
// Build Version
$build_project_details = [];
$build_project_details["name"] = $project_details["name"];
$build_project_details["description"] = $project_details["description"];
$build_project_details["license"] = $project_details["license"];
$build_project_details["type"] = $project_details["type"];
$build_project_details["version"] = $project_details["version"];
$build_project_details["build_date"] = $project_details["build_date"];
$build_directory = sprintf(".%s%s",DIRECTORY_SEPARATOR, "Build");
if (!file_exists($build_directory)) {
mkdir($build_directory, 0777, true);
}
foreach(["Core", "Libraries", "Utilities"] as $cp_dir){
RecursiveCopy(sprintf(".%s%s", DIRECTORY_SEPARATOR, $cp_dir), sprintf(".%s%s%s%s",DIRECTORY_SEPARATOR, $build_directory, DIRECTORY_SEPARATOR, $cp_dir));
}
foreach(["wpAPI.php", "LICENSE"] as $cp_file){
copy($cp_file, sprintf("%s%s%s", $build_directory , DIRECTORY_SEPARATOR , $cp_file));
}
fwrite(fopen(sprintf("%s%s%s", $build_directory, DIRECTORY_SEPARATOR, "composer.json"), "w") , json_encode($build_project_details));
function RecursiveCopy($src,$dst) {
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
RecursiveCopy($src . '/' . $file,$dst . '/' . $file);
}
else {
copy($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
}
$rootPath = realpath($build_directory);
$zip = new ZipArchive();
$zip->open('Build.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootPath),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file)
{
if (!$file->isDir())
{
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($rootPath) + 1);
$zip->addFile($filePath, $relativePath);
}
}
$zip->close();