ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
build.php
Go to the documentation of this file.
1 #!/usr/bin/env php
2 <?php
3 
4 $tasks = [
5 
6  'buildzip' => [
7  'init', 'test', 'clean',
8  ],
9  'markrelease' => [
10  'init', 'test', 'clean',
11  ],
12  'clean' => [],
13  'test' => [
14  'composerupdate',
15  ],
16  'init' => [],
17  'composerupdate' => [],
18  ];
19 
20 $default = 'buildzip';
21 
22 $baseDir = __DIR__ . '/../';
23 chdir($baseDir);
24 
26 if ($argc > 1) $currentTask = $argv[1];
27 $version = null;
28 if ($argc > 2) $version = $argv[2];
29 
30 if (!isset($tasks[$currentTask])) {
31  echo "Task not found: ", $currentTask, "\n";
32  die(1);
33 }
34 
35 // Creating the dependency graph
37 $oldTaskList = [$currentTask => true];
38 
39 while (count($oldTaskList) > 0) {
40 
41  foreach ($oldTaskList as $task => $foo) {
42 
43  if (!isset($tasks[$task])) {
44  echo "Dependency not found: " . $task, "\n";
45  die(1);
46  }
47  $dependencies = $tasks[$task];
48 
49  $fullFilled = true;
50  foreach ($dependencies as $dependency) {
51  if (isset($newTaskList[$dependency])) {
52  // Already in the fulfilled task list.
53  continue;
54  } else {
55  $oldTaskList[$dependency] = true;
56  $fullFilled = false;
57  }
58 
59  }
60  if ($fullFilled) {
61  unset($oldTaskList[$task]);
62  $newTaskList[$task] = 1;
63  }
64 
65  }
66 
67 }
68 
69 foreach (array_keys($newTaskList) as $task) {
70 
71  echo "task: " . $task, "\n";
72  call_user_func($task);
73  echo "\n";
74 
75 }
76 
77 function init() {
78 
79  global $version;
80  if (!$version) {
81  include __DIR__ . '/../vendor/autoload.php';
82  $version = Sabre\DAV\Version::VERSION;
83  }
84 
85  echo " Building sabre/dav " . $version, "\n";
86 
87 }
88 
89 function clean() {
90 
91  global $baseDir;
92  echo " Removing build files\n";
93  $outputDir = $baseDir . '/build/SabreDAV';
94  if (is_dir($outputDir)) {
95  system('rm -r ' . $baseDir . '/build/SabreDAV');
96  }
97 
98 }
99 
100 function composerupdate() {
101 
102  global $baseDir;
103  echo " Updating composer packages to latest version\n\n";
104  system('cd ' . $baseDir . '; composer update');
105 }
106 
107 function test() {
108 
109  global $baseDir;
110 
111  echo " Running all unittests.\n";
112  echo " This may take a while.\n\n";
113  system(__DIR__ . '/phpunit --configuration ' . $baseDir . '/tests/phpunit.xml.dist --stop-on-failure', $code);
114  if ($code != 0) {
115  echo "PHPUnit reported error code $code\n";
116  die(1);
117  }
118 
119 }
120 
121 function buildzip() {
122 
123  global $baseDir, $version;
124  echo " Generating composer.json\n";
125 
126  $input = json_decode(file_get_contents(__DIR__ . '/../composer.json'), true);
127  $newComposer = [
128  "require" => $input['require'],
129  "config" => [
130  "bin-dir" => "./bin",
131  ],
132  "prefer-stable" => true,
133  "minimum-stability" => "alpha",
134  ];
135  unset(
136  $newComposer['require']['sabre/vobject'],
137  $newComposer['require']['sabre/http'],
138  $newComposer['require']['sabre/uri'],
139  $newComposer['require']['sabre/event']
140  );
141  $newComposer['require']['sabre/dav'] = $version;
142  mkdir('build/SabreDAV');
143  file_put_contents('build/SabreDAV/composer.json', json_encode($newComposer, JSON_PRETTY_PRINT));
144 
145  echo " Downloading dependencies\n";
146  system("cd build/SabreDAV; composer install -n", $code);
147  if ($code !== 0) {
148  echo "Composer reported error code $code\n";
149  die(1);
150  }
151 
152  echo " Removing pointless files\n";
153  unlink('build/SabreDAV/composer.json');
154  unlink('build/SabreDAV/composer.lock');
155 
156  echo " Moving important files to the root of the project\n";
157 
158  $fileNames = [
159  'CHANGELOG.md',
160  'LICENSE',
161  'README.md',
162  'examples',
163  ];
164  foreach ($fileNames as $fileName) {
165  echo " $fileName\n";
166  rename('build/SabreDAV/vendor/sabre/dav/' . $fileName, 'build/SabreDAV/' . $fileName);
167  }
168 
169  // <zip destfile="build/SabreDAV-${sabredav.version}.zip" basedir="build/SabreDAV" prefix="SabreDAV/" />
170 
171  echo "\n";
172  echo "Zipping the sabredav distribution\n\n";
173  system('cd build; zip -qr sabredav-' . $version . '.zip SabreDAV');
174 
175  echo "Done.";
176 
177 }
clean()
Definition: build.php:89
$baseDir
Definition: build.php:22
global $argv
Definition: svg-scanner.php:41
$code
Definition: example_050.php:99
$tasks
Definition: build.php:4
const VERSION
Full version number.
Definition: Version.php:17
$currentTask
Definition: build.php:25
$version
Definition: build.php:27
if(!isset($tasks[$currentTask])) $newTaskList
Definition: build.php:36
$oldTaskList
Definition: build.php:37
$outputDir
Definition: metarefresh.php:28
test()
Definition: build.php:107
$default
Definition: build.php:20
while(count($oldTaskList) > 0) foreach(array_keys($newTaskList) as $task) init()
Definition: build.php:77
buildzip()
Definition: build.php:121
composerupdate()
Definition: build.php:100