Author: heer Date: Wed Nov 4 15:00:57 2009 New Revision: 1515 Log: Created script for generating config directory from a template directory Added: trunk/openwrt/create-config.sh (contents, props changed) Added: trunk/openwrt/create-config.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/openwrt/create-config.sh Wed Nov 4 15:00:57 2009 (r1515) @@ -0,0 +1,71 @@ +#!/bin/sh +# quick script to prepare an OpenWrt tree for flashing PISA routers +# +# Relies on the '-i' GNU extension for sed and on GNU patch. + +### helper functions ### +usage() { + echo $0 "<router-template> <new-router-name> <new-router-number> <wifi-mac>" + echo "This program will create a new router config from a router name, a router number and its wifi mac address." + exit $1 +} + +check_directory () { + if ! test -d "$2"; then + echo $1 directory does not exist. + exit 1 + fi +} + +#This runs in a subshell to avoid changing directory unintentionally. +sanitize_path () { + (cd $1; pwd) +} + +recursive_replace () { + + echo $2 - $3 + find files $1 -type f -exec sed -i "s/$2/$3/g" "{}" \; +} + +### set variables ### + +ROUTER_NAME=$2 +ROUTER_NUMBER=$3 +ROUTER_WIFI_MAC=$4 +TEMPLATE_PATH=$1 +ROUTER_CHANNEL=$5 + +echo $# +if [ "$#" != "5" ] ; then + usage 0 + +fi + + + +### sanity checks ### +case $1 in + -h|--help) + usage 0;; + */*|"") + usage 1;; +esac + + + + +### copy template to new router directory ### + +check_directory template ${TEMPLATE_PATH} + +echo "Creating directory $ROUTER_NAME" +cp -r $TEMPLATE_PATH $ROUTER_NAME + + +### Replace template paceholders ### +echo "Replacing Placeholders" +recursive_replace $ROUTER_NAME "##ROUTER_NAME##" $ROUTER_NAME +recursive_replace $ROUTER_NAME "##ROUTER_NUMBER##" $ROUTER_NUMBER +recursive_replace $ROUTER_NAME "##ROUTER_WIFI_MAC##" $ROUTER_WIFI_MAC +recursive_replace $ROUTER_NAME "##ROUTER_CHANNEL##" $ROUTER_CHANNEL