FWIW, the script will work under straight Windows and I use it there frequently.

I think Strawberry perl comes with cpanm (cpanminus) pre-installed so you can do:

    "cpanm Carton"

and then cd to wherever you've got the script saved and do:

    "carton install"

to install the dependencies

Or, if you've got a set of configs with nothing sensitive/private left in them, try the simple web version I set up:


If I had a Windows VM setup I'd come up with a setup.bat

On 10/13/2016 12:38 PM, Lee wrote:
On 10/13/16, Jesse McGraw <jlmcg...@gmail.com> wrote:

    Check out the setup.sh script, hopefully it does everything necessary
to get the script working on a Debian-derived Linux system
I'm using Windows + Cygwin; maybe it's just that I don't have them
installed, but there is no sudo or apt so setup.sh isn't going to work
for me.  So while I was interested in seeing what this bit looked like
If you run it against multiple configuration files at once it will also attempt 
to link
between them when applicable (e.g. BGP neighbors, route next hops, interfaces
on the same subnet etc).
I'm not willing to take any more time on this.

I appreciate all the people who've tried to help but at least for now, I'm done.


I've attempted to make the only globally-installed dependencies be cpanm
and carton.  Once those are installed it uses carton to install the
dependencies locally

On 10/12/2016 07:59 PM, Lee wrote:
On 10/12/16, Jason Hellenthal <jhellent...@dataix.net> wrote:
Give these a shot. https://github.com/jlmcgraw/networkUtilities

I know J could use a little feedback on those as well but all in all
are pretty solid.
Where does one get Modern/Perl.pm ?

Can't locate Modern/Perl.pm in @INC (you may need to install the
Modern::Perl module) (@INC contains: /tmp/local/lib/perl5
/usr/lib/perl5/5.22/i686-cygwin-threads-64int /usr/lib/perl5/5.22 .)
at /tmp/iosToHtml.pl line 87.
BEGIN failed--compilation aborted at /tmp/iosToHtml.pl line 87.


On Oct 11, 2016, at 08:48, Lee <ler...@gmail.com> wrote:

On 10/10/16, Jay Hennigan <j...@west.net> wrote:
On 10/6/16 1:26 PM, Jesse McGraw wrote:

     (This is me scratching an itch of my own and hoping that sharing
might be useful to others on this list.  Apologies if it isn't)

   When I'm trying to comprehend a new or complicated Cisco router,
switch or firewall configuration an old pet-peeve of mine is how
needlessly difficult it is to follow deeply nested logic in
ACLs, QoS policy-maps etc etc

To make this a bit simpler I’ve been working on a perl script to
these text-based configuration files into HTML with links between the
different elements (e.g. To an access-list from the interface where
applied, from policy-maps to class-maps etc), hopefully making it
to to follow the chain of logic via clicking links and using the
and back buttons in your browser to go back and forth between command
and referenced list.
Way cool. Now to hook it into RANCID....
It looks like what I did in 2.3.8 should still work - control_rancid
puts the diff output into $TMP.diff so add this bit:
grep "^Index: " $TMP.diff | awk '/^Index: configs/{
if ( ! got1 ) { printf("/usr/local/bin/myscript.sh "); got1=1; }
printf("%s ", $2)
END{ printf("\n") }
' >$TMP.doit
/bin/sh $TMP.doit >$TMP.out
if [ -s $TMP.out ] ; then
    .. send mail / whatever
rm $TMP.doit $TMP.out

   Jason Hellenthal

Reply via email to