#!/usr/bin/env php 0 && $rancid_cmd_base > 0 && $rancid_config_base != $rancid_cmd_base) { // If configured version base different from detected, than prefer configured (ie, for force v2 delimiter $rancid_version_base = $rancid_config_base; $rancid_version = $rancid_config_version; $rancid_message = "Used RANCID version configured manually in \$config['rancid_version']: $rancid_version"; } elseif (version_compare($rancid_cmd_version, $rancid_config_version, '>')) { // RANCID locally detected, use maximum version $rancid_version_base = $rancid_cmd_version; $rancid_version = $rancid_cmd_version; $rancid_message = "Used RANCID version detected on system: $rancid_version"; } elseif (version_compare($rancid_config_version, '0', '>')) { // RANCID not detected, but version configured $rancid_version_base = $rancid_config_base; $rancid_version = $rancid_config_version; $rancid_message = "Used RANCID version configured manually in \$config['rancid_version']: $rancid_version"; } else { // Last compat version $rancid_version_base = '2'; $rancid_version = '2'; $rancid_message = "Used default RANCID version: $rancid_version"; } $rancid_version = rtrim($rancid_version, '.0'); // Set delimiter if ($rancid_version_base < 3) { $delimiter = ':'; } else { $delimiter = ';'; } print_debug($rancid_message); $os_maps = []; // Add user defined os maps first if (is_array($config['rancid']['os_map'])) { foreach ($config['rancid']['os_map'] as $os => $name) { $os_maps[$os][] = [ 'name' => $name ]; } } // OS maps from definitions foreach ($config['os'] as $os => $entry) { if (!isset($entry['rancid'])) { continue; } $os_maps[$os] = $entry['rancid']; } print_debug_vars($os_maps, 1); ?> # RANCID router.db autogenerated by # # Do not edit this file directly! ')) { continue; } // Need check min rancid version if (isset($rancid_map['rancid_min']) && version_compare(rtrim($rancid_map['rancid_min'], '.0'), $rancid_version, '>')) { continue; } // All checks complete, write rancid entry and break loop echo($device['hostname'] . $delimiter . $rancid_map['name'] . $delimiter . $status . PHP_EOL); break; } } // EOF