1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
/** |
4
|
|
|
* Moodle component manager. |
5
|
|
|
* |
6
|
|
|
* @author Luke Carrier <[email protected]> |
7
|
|
|
* @copyright 2016 Luke Carrier |
8
|
|
|
* @license GPL-3.0+ |
9
|
|
|
*/ |
10
|
|
|
|
11
|
|
|
namespace ComponentManager\Exception; |
12
|
|
|
|
13
|
|
|
use ComponentManager\Exception\AbstractException; |
14
|
|
|
|
15
|
|
|
/** |
16
|
|
|
* Version control exception. |
17
|
|
|
* |
18
|
|
|
* Raised upon the failure of a VCS command during an installation. |
19
|
|
|
*/ |
20
|
|
View Code Duplication |
class VersionControlException extends AbstractException { |
|
|
|
|
21
|
|
|
/** |
22
|
|
|
* Code: fetch failed. |
23
|
|
|
* |
24
|
|
|
* @var integer |
25
|
|
|
*/ |
26
|
|
|
const CODE_FETCH_FAILED = 1; |
27
|
|
|
|
28
|
|
|
/** |
29
|
|
|
* Code: checkout failed. |
30
|
|
|
* |
31
|
|
|
* @var integer |
32
|
|
|
*/ |
33
|
|
|
const CODE_CHECKOUT_FAILED = 2; |
34
|
|
|
|
35
|
|
|
/** |
36
|
|
|
* Code: remote add failed. |
37
|
|
|
* |
38
|
|
|
* @var integer |
39
|
|
|
*/ |
40
|
|
|
const CODE_REMOTE_ADD_FAILED = 3; |
41
|
|
|
|
42
|
|
|
/** |
43
|
|
|
* Code: repository initialisation failed. |
44
|
|
|
* |
45
|
|
|
* @var integer |
46
|
|
|
*/ |
47
|
|
|
const CODE_INIT_FAILED = 4; |
48
|
|
|
|
49
|
|
|
/** |
50
|
|
|
* Code: checkout-index failed. |
51
|
|
|
* |
52
|
|
|
* @var integer |
53
|
|
|
*/ |
54
|
|
|
const CODE_CHECKOUT_INDEX_FAILED = 5; |
55
|
|
|
|
56
|
|
|
/** |
57
|
|
|
* Code: rev-parse failed. |
58
|
|
|
* |
59
|
|
|
* @var integer |
60
|
|
|
*/ |
61
|
|
|
const CODE_REV_PARSE_FAILED = 6; |
62
|
|
|
|
63
|
|
|
/** |
64
|
|
|
* @inheritdoc AbstractException |
65
|
|
|
*/ |
66
|
|
|
public function getExceptionType() { |
67
|
|
|
return 'VersionControlException'; |
68
|
|
|
} |
69
|
|
|
|
70
|
|
|
/** |
71
|
|
|
* @inheritdoc AbstractException |
72
|
|
|
*/ |
73
|
|
|
public function getExceptionCodeName() { |
74
|
|
|
switch ($this->code) { |
75
|
|
|
case static::CODE_FETCH_FAILED: |
76
|
|
|
return 'Failed to fetch the specified remote'; |
77
|
|
|
|
78
|
|
|
case static::CODE_CHECKOUT_FAILED: |
79
|
|
|
return 'Failed to checkout the specified reference'; |
80
|
|
|
|
81
|
|
|
case static::CODE_REMOTE_ADD_FAILED: |
82
|
|
|
return 'Failed to add the specified remote'; |
83
|
|
|
|
84
|
|
|
case static::CODE_INIT_FAILED: |
85
|
|
|
return 'Failed to initialise the Git repository'; |
86
|
|
|
|
87
|
|
|
case static::CODE_CHECKOUT_INDEX_FAILED: |
88
|
|
|
return 'Failed to checkout files in the index to the specified prefix'; |
89
|
|
|
|
90
|
|
|
case static::CODE_REV_PARSE_FAILED: |
91
|
|
|
return 'Failed to locate a commit hash for the supplied reference'; |
92
|
|
|
} |
93
|
|
|
} |
94
|
|
|
} |
95
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.