#!/bin/bash # lw-build-system/scripts/module-create.sh # # (c)2006, Laurence Withers, . # Released under the GNU GPLv2. See file COPYING or # http://www.gnu.org/copyleft/gpl.html for details. # # Creates a new source module. # Get the directory of the repository (needed to include functions file) cd $(dirname $0) cd $(dirname $(pwd)) P=$(basename $(pwd)) [ -z "${VERBOSE}" ] && VERBOSE="0" source scripts/functions.sh || exit 1 # Get arguments. if [ $# -lt 3 ] then echo "Usage: scripts/module-create.sh [args]" echo " available modules:" for i in scripts/build.* do echo $i | sed "s,scripts/build\.\([^.]*\)\.\(.*\), lang: \1 type: \2," done exit 1 fi LANG=$1 shift TYPE=$1 shift NAME=$1 shift TEMPLATE=scripts/build.${LANG}.${TYPE} if [ ! -e ${TEMPLATE}/instantiate ] then echo "No such module type." exit 1 fi # function to rename a package to a bash/C identifier get_cname() { echo $1 | tr +- p_ } # function used to replace variables # assumes that we're in the directory to replace files in # for each argument X, it will replace @X@ with ${X} do_parameter_subst() { CNAME=$(get_cname ${NAME}) do_cmd source ~/.lwbuildrc || exit 1 for param in P NAME CNAME AUTHOR EMAIL VIM_MODELINE KATE_MODELINE $@ do do_cmd_redir sedscript echo "s,@${param}@,${!param},g" || exit 1 done do_cmd find . -type f -a -not -name sedscript -exec sed -f sedscript -i {} \; || exit 1 do_cmd rm sedscript || exit 1 } do_cmd source ${TEMPLATE}/instantiate || exit 1 print_success "Module instantiated" grep -r "@TODO@" . true # kate: replace-trailing-space-save true; space-indent true; tab-width 4; # vim: expandtab:ts=4:sw=4