diff --git a/bin/foamNew b/bin/foamNew index 10a8134c5d..3d18e3a4d8 100755 --- a/bin/foamNew +++ b/bin/foamNew @@ -36,7 +36,9 @@ Usage: ${0##*/} {args} * create a new standard OpenFOAM source or template file -type: (source|template) +type: + -s | -source | source + -t | -template | template USAGE exit 1 @@ -47,16 +49,16 @@ USAGE [ "$#" -gt 1 ] || usage case "$1" in -source) +(-s | -source | source) shift $WM_PROJECT_DIR/etc/codeTemplates/source/foamNewSource $* ;; -template) +(-t | -template | template) shift $WM_PROJECT_DIR/etc/codeTemplates/template/foamNewTemplate $* ;; -*) - usage "unknown type" +(*) + usage "unknown type '$1'" ;; esac diff --git a/etc/codeTemplates/source/foamNewSource b/etc/codeTemplates/source/foamNewSource index 0e1c7f03d2..30fc7acd0c 100755 --- a/etc/codeTemplates/source/foamNewSource +++ b/etc/codeTemplates/source/foamNewSource @@ -35,66 +35,81 @@ Template="$WM_PROJECT_DIR/etc/codeTemplates/source/_Template" usage() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat< +Usage: $Script [OPTION] +options: + -help print the usage * create a new standard OpenFOAM source file type: (C|H|I|IO|App) +A ClassName starting with '-' will simply display the template + USAGE exit 1 } +className="$2" +unset subType Type printOpt + +# for a className starting with '-' simply display the code +if [ "${2#-}" != "${2}" ] +then + printOpt=true +fi + + # this implicitly covers a lone -help [ "$#" -gt 1 ] || usage -className="$2" -unset subType Type - case "$1" in --h | -help) +(-h | -help) usage ;; -C|H) +(C|H) Type=".$1" ;; -I) +(I) Type="$1.H" ;; -IO) +(IO) Type="$1.C" ;; -app|App) +(app|App) subType=App Type=".C" ;; -*) - usage "unknown type" +(*) + usage "unknown type '$1'" ;; esac + [ "$#" -eq 2 ] || usage "wrong number of arguments" shift 2 -fileName="$className$Type" - - -echo "$Script: Creating new interface file $fileName" -if [ -e "$fileName" ] +if [ "${printOpt:-false}" = true ] then - echo " Error: file exists" - exit 1 -fi + cat $Template$subType$Type +else + fileName="$className$Type" -# process class name -sed "s/CLASSNAME/$className/g" $Template$subType$Type > $fileName + echo "$Script: Creating new interface file $fileName" + if [ -e "$fileName" ] + then + echo " Error: file exists" + exit 1 + fi + # process class name + sed "s/CLASSNAME/$className/g" $Template$subType$Type > $fileName -if [ "$subType" = App -a ! -d Make ] -then - wmakeFilesAndOptions + if [ "$subType" = App -a ! -d Make ] + then + wmakeFilesAndOptions + fi fi #------------------------------------------------------------------------------ diff --git a/etc/codeTemplates/template/foamNewTemplate b/etc/codeTemplates/template/foamNewTemplate index b2a48cb6ba..1ab2b3907a 100755 --- a/etc/codeTemplates/template/foamNewTemplate +++ b/etc/codeTemplates/template/foamNewTemplate @@ -36,12 +36,16 @@ usage() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done cat<