]> Creatis software - bbtk.git/blobdiff - kernel/appli/bbCreateBlackBox/bbCreateBlackBox.sh.in
#3202 BBTK Feature New Normal - fast algorithm for ImageBoundaries box
[bbtk.git] / kernel / appli / bbCreateBlackBox / bbCreateBlackBox.sh.in
index b30c85fe7f36471120ce10e2cefc9476ea5a1f47..54ebc364a191f091f79f1d7fcf5280e4f2f038ba 100644 (file)
@@ -1,91 +1,98 @@
-@echo off
-
-echo creates the file architecture for a new blackbox
-
-
-if %0%5==%0 goto ERROR01
-
-
-rem bbCreatePackage path
-set BINPATH=%~dp0
-rem Input data path
-set INPUT="%BINPATH%\@bbCreateBlackBox_DATA_REL_PATH_FROM_BIN@\xml-templates"
-
-set OUTPUT=%1
-set PACK=%2
-set BLACKBOX=%3
-set TYPE=%4
-set FORMAT=%5
-set AUTHOR=%6
-set DESCRIPTION=%7
-set FILENAME=bb%PACK%%BLACKBOX%
-
-echo output=  %OUTPUT%
-echo bin   =  %BINPATH%
-echo input =  %INPUT%
-echo pack  =  %PACK%
-echo blackbox  =  %BLACKBOX%
-echo type  =  %TYPE%
-echo format  =  %FORMAT%
-echo author  =  %AUTHOR%
-echo description  =  %DESCRIPTION%
-echo filename  =  %FILENAME%
-
-echo "** Creating new black box  '%BLACKBOX%'  xml/c++ in folder '%OUTPUT%'"
-
-echo Creating XML file..
-echo copy %INPUT%\%type%-template.xml %OUTPUT%\%FILENAME%.xml
-copy %INPUT%\%type%-template.xml %OUTPUT%\%FILENAME%.xml_tmp
-%BINPATH%\bbSed %OUTPUT%\%FILENAME%.xml_tmp  __BLACKBOXNAME__ %BLACKBOX% > %OUTPUT%\%FILENAME%_1.xml
-%BINPATH%\bbSed %OUTPUT%\%FILENAME%_1.xml  __AUTHOR__ %AUTHOR% > %OUTPUT%\%FILENAME%_2.xml
-%BINPATH%\bbSed %OUTPUT%\%FILENAME%_2.xml  __DESCRIPTION__ %DESCRIPTION% > %OUTPUT%\%FILENAME%.xml_tmp
-del %OUTPUT%\%FILENAME%_1.xml 
-del %OUTPUT%\%FILENAME%_2.xml 
-
-
-IF %FORMAT%==XML GOTO module_XML
-IF %FORMAT%==C++ GOTO module_C++
-
-goto ERROR03
-
-:module_XML
-  IF EXIST %OUTPUT%\%FILENAME%.xml GOTO ERROR02
-  move %OUTPUT%\%FILENAME%.xml_tmp %OUTPUT%\%FILENAME%.xml 
-goto END
-
-:module_C++
-  IF EXIST %OUTPUT%\%FILENAME%.cxx GOTO ERROR02
-  echo %BINPATH%\bbfy %OUTPUT%\%FILENAME%.xml_tmp %PACK% %OUTPUT% 
-  %BINPATH%\bbfy %OUTPUT%\%FILENAME%.xml_tmp %PACK% %OUTPUT%\
-  del %OUTPUT%\%FILENAME%.xml_tmp 
-goto END
-
-
-
-:ERROR01
-echo -----------------------------------------------------------------------------  
-echo bbCreateBlackBox.bat "<dir-path> <package-name> <blackbox-name> <type> <format> [author] [description] "
-echo    type:  
-echo          std  
-echo          VTK_ImageAlgorithm  
-echo          VTK_PolyDataAlgorithm  
-echo          widget  
-echo    format:  
-echo          XML  
-echo          C++ 
-echo -----------------------------------------------------------------------------  
-goto END
-
-:ERROR02
-echo "ERROR : File '%OUTPUT%\%FILENAME%'  %FORMAT%  already exists !"  
-del %OUTPUT%\%FILENAME%.xml_tmp 
-goto end
-
-:ERROR03
-echo "ERROR : format not match '%FORMAT%'  "  
-del %OUTPUT%\%FILENAME%.xml_tmp 
-goto end
-
-
-:END
+# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+#                        pour la SantÈ)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and
+#  abiding by the rules of distribution of free software. You can  use,
+#  modify and/ or redistribute the software under the terms of the CeCILL-B
+#  license as circulated by CEA, CNRS and INRIA at the following URL
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability.
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
+
+#!/bin/bash
+# creates the file architecture for a new user package
+
+if [ $# -lt 5 ]
+    then
+    echo "usage : bbCreateBlackBox <dir-path> <package-name> <blackbox-name> <type> <format> [author] [description] [category]"
+    echo "   type:  "
+    echo "         std  "
+    echo "         VTK_ImageAlgorithm  "
+    echo "         VTK_PolyDataAlgorithm  "
+    echo "         widget  "
+    echo "   format:  "
+    echo "         XML  "
+    echo "         C++ "
+#bbCreateBox <template-xml-file-name> <box-name> <package-name> [author] [description] [category]"  
+    exit
+fi
+
+# bbCreatePackage path
+TMP=$(which $0|rev)
+BINPATH=$(echo ${TMP#*/}|rev)
+#INPUT=$1
+
+OUTPUT_DIR=$1
+PACKAGE=$2
+BOX=$3
+TYPE=$4
+FORMAT=$5
+AUTHOR=$6
+DESCRIPTION=$7
+CATEGORY=$8
+# Input template file 
+INPUT=${BINPATH}/@bbCreateBlackBox_DATA_REL_PATH_FROM_BIN@/xml-templates/${TYPE}-template.xml
+FILENAME=bb${PACKAGE}${BOX}
+
+echo "output dir  = " $OUTPUT_DIR
+echo "box name    = " $BOX
+echo "package     = " $PACKAGE
+echo "author      = " $AUTHOR
+echo "description = " $DESCRIPTION
+echo "category    = " $CATEGORY
+echo "type        = " $TYPE
+echo "format      = " $FORMAT
+echo "input       = " $INPUT
+
+
+echo "** Creating new black box  '$BOX' in folder '$OUTPUT_DIR'"
+
+if [ -f ${OUTPUT_DIR}/${FILENAME}.xml ]
+    then
+    echo "Error : ${OUTPUT_DIR}/${FILENAME}.xml already exists"
+    exit
+fi
+
+echo " - Creating ${FILENAME}.xml"
+
+sed s,__BLACKBOXNAME__,"${BOX}", < ${INPUT} | sed  s/__AUTHOR__/"${AUTHOR}"/ | sed s{__DESCRIPTION__{"${DESCRIPTION}"{ | sed s/__CATEGORY__/"${CATEGORY}"/ > ${OUTPUT_DIR}/${FILENAME}.xml
+          
+if [ "${FORMAT}" = "C++" ]
+    then
+    if [ -f ${OUTPUT_DIR}/${FILENAME}.h ]
+       then
+       echo "Error : ${OUTPUT_DIR}/${FILENAME}.h already exists"
+       exit
+    fi
+    echo " - Creating ${FILENAME}.h/cxx"
+    ${BINPATH}/bbfy ${OUTPUT_DIR}/${FILENAME}.xml ${PACKAGE} ${OUTPUT_DIR}/ -q
+    echo " - Deleting ${FILENAME}.xml"
+    rm ${OUTPUT_DIR}/${FILENAME}.xml
+fi
+
+echo "Black box created !"