diff --git a/wikify.routerconfig/getall.sh b/wikify.routerconfig/getall.sh
new file mode 100755
index 0000000..f8387cb
--- /dev/null
+++ b/wikify.routerconfig/getall.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+HOSTS="
+r1 r2 r3
+switch1 switch2 switch3
+"
+
+for HOST in $HOSTS ; do
+ rm -f ./fetchedconfig
+ ./getconfig.ex $HOST 2> /dev/null > /dev/null
+ if [ -e ./fetchedconfig ]; then
+ #DATE=`date -u --rfc-3339=seconds`
+ #echo "! fetched from $HOST on $DATE" > ${HOST}-config.txt
+ cat ./fetchedconfig > ${HOST}-config.txt
+ rm -f ./fetchedconfig
+ ./wikiupdate ${HOST} ./${HOST}-config.txt
+ rm -f ./${HOST}-config.txt
+ else
+ echo "unable to fetch config for $HOST"
+ fi
+done
+
diff --git a/wikify.routerconfig/getconfig.ex b/wikify.routerconfig/getconfig.ex
new file mode 100755
index 0000000..05c6717
--- /dev/null
+++ b/wikify.routerconfig/getconfig.ex
@@ -0,0 +1,10 @@
+#!/usr/bin/expect -f
+set hostname [lindex $argv 0]
+set timeout 20
+spawn scp root@$hostname:running-config ./fetchedconfig
+set pass "ROUTER_PASSWORD_HERE"
+expect {
+ password: {send "$pass\r" ; exp_continue}
+ eof exit
+}
+
diff --git a/wikify.routerconfig/wikiupdate b/wikify.routerconfig/wikiupdate
new file mode 100755
index 0000000..12dac3c
--- /dev/null
+++ b/wikify.routerconfig/wikiupdate
@@ -0,0 +1,92 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings qw( all );
+use WWW::Mechanize;
+
+our $u = 'WIKI_USERNAME';
+our $p = 'WIKI_PASSWORD';
+our $wikihost = 'wikihost.com'
+our $debug = 1;
+
+main();
+
+sub main {
+
+ usage() unless @ARGV == 2;
+
+ my $itemname = uc(shift(@ARGV));
+ $itemname =~ s/[^A-Z0-9\-\_\.]//g;
+ my $pagename = $itemname . '/config';
+
+ my $filename = shift(@ARGV);
+
+ open(INFILE,$filename)
+ or die("$0: can't open input file $filename for reading: $!\n");
+ my $data;
+ read(INFILE,$data,1024*1024,0); #1mb sufficient
+ close(INFILE);
+
+
+ my $mech = WWW::Mechanize->new();
+
+ $mech->credentials(
+ $wikihost . ':443',
+ $wikihost,
+ $u => $p
+ );
+
+ $mech->get('https://' . $wikihost . '/w/index.php?title=Special:Userlogin');
+
+ $mech->submit_form(
+ form_name => 'userlogin',
+ fields => {
+ wpName => $u,
+ wpPassword => $p,
+ },
+ );
+
+ $data =~ s/[\n\r]+/\n/gm;
+
+ $data =~ s/^ntp clock\-period [0-9]+//gm;
+
+ $data =~ s/^(.*)$/ $1/gm;
+
+ # this wikifies hostnames conforming to a certian format
+ $data =~ s/\b([vV][0-9][0-9][A-Za-z][A-Za-z][0-9][0-9][0-9])\b/\[\[$1\]\]/gm;
+
+ # this wikifies ip addresses
+ $data =~ s/\b([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\b/\[\[$1\]\]/gm;
+
+ $mech->get("https://$wikihost/w/index.php?title=$pagename&action=edit");
+
+ $mech->submit_form(
+ form_name => 'editform',
+ fields => {
+ wpTextbox1 => "{{autogen}}\n\n".
+ "= [[$itemname]] configuration =\n\n".
+ "$data".
+ "
\n".
+ "{{autofetched-router}}\n",
+ wpSummary => "auto-update via script by $u",
+ },
+ );
+
+}
+
+sub usage {
+ print STDERR "usage: $0 \n";
+ die;
+}
+
+sub dout {
+ return unless defined($debug) && $debug;
+ my $msg = shift;
+ chomp $msg;
+ print STDERR "*** $msg\n";
+}
+
+
+1;
+
+__END__