%PDF- %PDF-
| Direktori : /proc/thread-self/root/backups/router/usr/local/opnsense/scripts/firmware/ |
| Current File : //proc/thread-self/root/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;