-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathget_diff.php
More file actions
78 lines (70 loc) · 2.4 KB
/
get_diff.php
File metadata and controls
78 lines (70 loc) · 2.4 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
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
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* This file diffs the last commit and determines which set of tests should run.
*
* @package moodlescripts
* @category moodle
* @copyright 2016 Craig Jamieson
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
exec('git diff --name-only HEAD HEAD~1', $files);
$paths = array();
foreach ($files as $file) {
if (dirname($file) != '.') {
$pieces = explode('/', dirname($file));
if (isset($pieces[0])) {
// Paths: 'report', 'blocks', and 'mod' have two portions.
if ($pieces[0] == 'report' || $pieces[0] == 'blocks' || $pieces[0] == 'mod') {
if (isset($pieces[1])) {
$paths[] = $pieces[0] . '/' . $pieces[1];
}
// Path 'course' requires 3 parts, /course/format/xxxx
} else if ($pieces[0] == 'course') {
if (isset($pieces[1]) && isset($pieces[2])) {
$paths[] = $pieces[0] . '/' . $pieces[1] . '/' . $pieces[2];
}
}
}
}
}
$file = fopen("paths.txt", "w");
$paths = array_unique($paths);
foreach ($paths as $path) {
switch ($path) {
case 'report/analytics':
fwrite($file, "analytics\n");
break;
case 'blocks/course_message':
fwrite($file, "mail\n");
break;
case 'blocks/skills_group':
fwrite($file, "sg\n");
break;
case 'blocks/nurs_navigation':
fwrite($file, "nn\n");
break;
case 'course/format/collblct':
fwrite($file, "labels\n");
break;
default:
// Do nothing.
}
}
if (count($paths) > 0) {
echo implode(" ", $paths);
}
fclose($file);