#!/bin/bash usage () { echo "htorc - Convert a C header file to a nanorc file" echo "usage: htorc color [hfile] [rcfile]" echo "valid colors are:" echo "(bright) white, black, red, blue, green, yellow, magenta, cyan." exit } if [ $# -lt 3 ] ; then usage fi if [ -f $2 ] ; then echo "## This rc file was auto-generated by htorc" >> $3 echo "## The lastest version can be found at " >> $3 echo "## http://jumex.sdf1.org/soft/htorc.txt" >> $3 echo "##" >> $3 echo "date-stamping $3 rc file" echo "## Date-stamp: $(date -Ru)" >> $3 echo "##" >> $3 echo "marking #define statements" echo "## #define statements for $2" >> $3 echo "##" >> $3 grep -e "^#define" $2 |\ sed s/"^#define[[:blank:]]*\([-_[:alnum:]]*\)[^-_[:alnum:]]*.*"/"color $1 \"\1\""/g >> $3 echo "##" >> $3 echo "marking fuction names" echo "## function names for $2" >> $3 echo "##" >> $3 grep -e "^[-_[:alnum:]]*[[:space:]]*[-_[:alnum:]]*[[:space:]]*(" $2 |\ sed s/"^[-_[:alnum:]]*[[:space:]]*\([-_[:alnum:]]*\)[^-_[:alnum:]]*(.*"/"color $1 \"\1\""/g >> $3 echo "##" >> $3 echo "marking single-line typedef declarations" echo "## single-line typedef declarations for $2" >> $3 echo "##" >> $3 grep -e "typedef.*;" $2 |\ sed s/"typedef.*[[:blank:]]\(.*\);$"/"color $1 \"\1\""/g >> $3 echo "##" >> $3 echo "marking multi-line typedef declarations" echo "## multi-line typedef declarations for $2" >> $3 echo "##" >> $3 grep -e "[}].*;.*" $2 |\ sed s/"[}][[:space:]]*\([-_[:alnum:]]*\)[^-_[:alnum:]]*.*;.*"/"color $1 \"\1\""/g >> $3 echo "##" >> $3 else usage fi