Rev 76 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 76 | Rev 77 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | <?php /* <ViaThinkSoftSignature> |
1 | <?php /* <ViaThinkSoftSignature> |
2 | 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 |
23 | w== |
23 | Q== |
24 | </ViaThinkSoftSignature> */ ?> |
24 | </ViaThinkSoftSignature> */ ?> |
25 | <?php |
25 | <?php |
26 | 26 | ||
27 | /* |
27 | /* |
28 | * VNag - Nagios Framework for PHP |
28 | * VNag - Nagios Framework for PHP |
Line 55... | Line 55... | ||
55 | 55 | ||
56 | protected function get_local_version($path) { |
56 | protected function get_local_version($path) { |
57 | $path = realpath($path) === false ? $path : realpath($path); |
57 | $path = realpath($path) === false ? $path : realpath($path); |
58 | 58 | ||
59 | if (!file_exists("$path/lib/viewvc.py")) { |
59 | if (!file_exists("$path/lib/viewvc.py")) { |
60 | throw new Exception("Cannot find ViewVC settings file at $path"); |
60 | throw new VNagException("Cannot find ViewVC settings file at $path"); |
61 | } |
61 | } |
62 | 62 | ||
63 | $cont = @file_get_contents("$path/lib/viewvc.py"); |
63 | $cont = @file_get_contents("$path/lib/viewvc.py"); |
- | 64 | if ($cont === false) { |
|
- | 65 | throw new VNagException("Cannot determine version for system $path (cannot read viewvc.py)"); |
|
64 | 66 | } |
|
65 | if (!preg_match('@__version__\\s*=\\s*([\'"])(.+)\\1@ismU', $cont, $m)) { |
67 | if (!preg_match('@__version__\\s*=\\s*([\'"])(.+)\\1@ismU', $cont, $m)) { |
66 | throw new Exception("Cannot determine version for system $path"); |
68 | throw new VNagException("Cannot determine version for system $path (cannot find version string)"); |
67 | } |
69 | } |
68 | 70 | ||
69 | return $m[2]; // e.g. "1.3.0-dev" |
71 | return $m[2]; // e.g. "1.3.0-dev" |
70 | } |
72 | } |
71 | 73 | ||
72 | protected function get_latest_version() { |
74 | protected function get_latest_version() { |
73 | $cont = $this->url_get_contents('https://api.github.com/repos/viewvc/viewvc/releases/latest'); |
75 | $cont = $this->url_get_contents('https://api.github.com/repos/viewvc/viewvc/releases/latest'); |
74 | if ($cont === false) { |
76 | if ($cont === false) { |
75 | throw new Exception('Cannot parse version from GitHub API. The plugin probably needs to be updated. A'); |
77 | throw new VNagException('Cannot parse version from GitHub API. The plugin probably needs to be updated. (Cannot access api.github.com)'); |
76 | } |
78 | } |
77 | 79 | ||
78 | $data = @json_decode($cont, true); |
80 | $data = @json_decode($cont, true); |
79 | if ($data === false) { |
81 | if ($data === false) { |
80 | throw new Exception('Cannot parse version from GitHub API. The plugin probably needs to be updated. B'); |
82 | throw new VNagException('Cannot parse version from GitHub API. The plugin probably needs to be updated. (Invalid JSON data downloaded from api.github.com)'); |
81 | } |
83 | } |
82 | 84 | ||
83 | return $data['tag_name']; // e.g. "1.2.1" |
85 | return $data['tag_name']; // e.g. "1.2.1" |
84 | } |
86 | } |
85 | 87 | ||
86 | protected function cbRun($optional_args=array()) { |
88 | protected function cbRun($optional_args=array()) { |
87 | $system_dir = $this->argSystemDir->getValue(); |
89 | $system_dir = $this->argSystemDir->getValue(); |
88 | if (empty($system_dir)) { |
90 | if (empty($system_dir)) { |
89 | throw new Exception("Please specify the directory of the ViewVC installation."); |
91 | throw new VNagException("Please specify the directory of the ViewVC installation."); |
90 | } |
92 | } |
91 | $system_dir = realpath($system_dir) === false ? $system_dir : realpath($system_dir); |
93 | $system_dir = realpath($system_dir) === false ? $system_dir : realpath($system_dir); |
92 | 94 | ||
93 | if (!is_dir($system_dir)) { |
95 | if (!is_dir($system_dir)) { |
94 | throw new Exception('Directory "'.$system_dir.'" not found.'); |
96 | throw new VNagException('Directory "'.$system_dir.'" not found.'); |
95 | } |
97 | } |
96 | 98 | ||
97 | $local_version = $this->get_local_version($system_dir); |
99 | $local_version = $this->get_local_version($system_dir); |
98 | 100 | ||
99 | $latest_stable = $this->get_latest_version(); |
101 | $latest_stable = $this->get_latest_version(); |