mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	* Switch librenms links to https * Convert librenms links in comments * Switch gnu.org url to https * switch php urls to https
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env php
 | 
						|
<?php
 | 
						|
/*
 | 
						|
 * This program is free software: you can redistribute it and/or modify
 | 
						|
 * it under the terms of the GNU General Public License as published by
 | 
						|
 * the Free Software Foundation, either version 3 of the License, or
 | 
						|
 * (at your option) any later version.
 | 
						|
 *
 | 
						|
 * This program is distributed in the hope that it will be useful,
 | 
						|
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
 | 
						|
 * GNU General Public License for more details.
 | 
						|
 *
 | 
						|
 * You should have received a copy of the GNU General Public License
 | 
						|
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * libreNMS CLI utility to purge old ports.
 | 
						|
 *
 | 
						|
 * @author Maximilian Wilhelm <max@sdn.clinic>
 | 
						|
 * @copyright 2016-2017 LibreNMS, Barbarossa
 | 
						|
 * @license GPL
 | 
						|
 */
 | 
						|
 | 
						|
use App\Models\Port;
 | 
						|
use Illuminate\Database\Eloquent\ModelNotFoundException;
 | 
						|
 | 
						|
chdir(dirname($argv[0]));
 | 
						|
 | 
						|
$init_modules = [];
 | 
						|
require realpath(__DIR__ . '/..') . '/includes/init.php';
 | 
						|
 | 
						|
$opt = getopt('p:f:');
 | 
						|
 | 
						|
// Single Port-id given on cmdline?
 | 
						|
$port_id = null;
 | 
						|
if ($opt['p']) {
 | 
						|
    $port_id = $opt['p'];
 | 
						|
}
 | 
						|
 | 
						|
// File with port-ids given on cmdline?
 | 
						|
$port_id_file = null;
 | 
						|
if ($opt['f']) {
 | 
						|
    $port_id_file = $opt['f'];
 | 
						|
}
 | 
						|
 | 
						|
if (! $port_id && ! $port_id_file || ($port_id && $port_id_file)) {
 | 
						|
    echo $console_color->convert(\LibreNMS\Config::get('project_name') . ' Port purge tool
 | 
						|
    -p <port_id>  Purge single port by it\'s port-id
 | 
						|
    -f <file>     Purge a list of ports, read port-ids from <file>, one on each line.
 | 
						|
                  A filename of - means reading from STDIN.
 | 
						|
');
 | 
						|
}
 | 
						|
 | 
						|
// Purge single port
 | 
						|
if ($port_id) {
 | 
						|
    try {
 | 
						|
        Port::findOrFail($port_id)->delete();
 | 
						|
    } catch (ModelNotFoundException $e) {
 | 
						|
        echo "Port ID $port_id not found!\n";
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
// Delete multiple ports
 | 
						|
if ($port_id_file) {
 | 
						|
    $fh = null;
 | 
						|
    if ($port_id_file == '-') {
 | 
						|
        $fh = STDIN;
 | 
						|
    } else {
 | 
						|
        $fh = fopen($port_id_file, 'r');
 | 
						|
        if (! $fh) {
 | 
						|
            echo 'Failed to open port-id list "' . $port_id_file . "\": \n";
 | 
						|
            exit(1);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    while ($port_id = trim(fgets($fh))) {
 | 
						|
        try {
 | 
						|
            Port::findOrFail($port_id)->delete();
 | 
						|
        } catch (ModelNotFoundException $e) {
 | 
						|
            echo "Port ID $port_id not found!\n";
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    if ($fh != STDIN) {
 | 
						|
        fclose($fh);
 | 
						|
    }
 | 
						|
}
 |