%PDF- %PDF-
Direktori : /backups/router/usr/local/opnsense/scripts/firmware/ |
Current File : //backups/router/usr/local/opnsense/scripts/firmware/product.php |
#!/usr/local/bin/php <?php /* * Copyright (c) 2021-2023 Franco Fichtner <franco@opnsense.org> * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ require_once 'util.inc'; $metafile = '/usr/local/opnsense/version/core'; $licensefile = $metafile . '.license'; $ret = json_decode(@file_get_contents($metafile), true); if ($ret != null) { $ret['product_latest'] = shell_safe('/usr/local/opnsense/scripts/firmware/latest.php'); $ret['product_mirror'] = preg_replace('/\/[a-z0-9]{8}(-[a-z0-9]{4}){3}-[a-z0-9]{12}\//i', '/${SUBSCRIPTION}/', shell_safe('opnsense-update -M')); $ret['product_time'] = date('D M j H:i:s T Y', filemtime('/usr/local/opnsense/www/index.php')); $repos = explode("\n", shell_safe('opnsense-verify -l')); sort($repos); $ret['product_log'] = empty(shell_safe('opnsense-update -G')) ? 0 : 1; $ret['product_repos'] = implode(', ', $repos); $ret['product_check'] = json_decode(@file_get_contents('/tmp/pkg_upgrade.json'), true); $ret['product_license'] = []; /* for business editions, collect license information */ if (file_exists($licensefile)) { $payload = file_get_contents($licensefile); $payload = $payload !== false ? json_decode($payload, true) : null; if (is_array($payload)) { foreach ($payload as $key => $val) { $ret['product_license'][$key] = $val; } } } ksort($ret); } else { $ret = []; } echo json_encode($ret, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . PHP_EOL;