Subversion Repositories vnag

Rev

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();