#!/bin/sh
#$Id$

#
# Script created by: Stephen R. van den Berg <srb@cuci.nl>, 1999/04/18
# Donated to the public domain.
#
# This script transforms the output of "ip" into more readable text.
# "ip" is the Linux-advanced-routing configuration tool part of the
# iproute package.
#

test "X-h" = "X$1" && echo "Usage: $0 [tablenr [raw ip args...]]" && exit 64

test -z "$*" && set 0

ip route list table "$@" |
 while read network rest
 do set xx $rest
    shift
    proto=""
    via=""
    dev=""
    scope=""
    src=""
    table=""
    case $network in
       broadcast|local|unreachable) via=$network
          network=$1
          shift
          ;;
    esac
    while test $# != 0
    do
       key=$1
       val=$2
       eval "$key=$val"
       shift 2
    done
    echo "$network	$via	$src	$proto	$scope	$dev	$table"
 done | awk -F '	' '
BEGIN {
   format="%15s%-3s %15s %15s %8s %8s%7s %s\n";
   printf(format,"target","","gateway","source","proto","scope","dev","tbl");
 }
 { network=$1;
   mask="";
   if(match(network,"/"))
    { mask=" "substr(network,RSTART+1);
      network=substr(network,0,RSTART);
    }
   via=$2;
   src=$3;
   proto=$4;
   scope=$5;
   dev=$6;
   table=$7;
   printf(format,network,mask,via,src,proto,scope,dev,table);
 }
'
