]> Creatis software - bbtk.git/blob - kernel/appli/bbCreateBlackBox/bbCreateBlackBox.sh.in
Feature #1774
[bbtk.git] / kernel / appli / bbCreateBlackBox / bbCreateBlackBox.sh.in
1 # ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la SantÈ)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and
10 #  abiding by the rules of distribution of free software. You can  use,
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B
12 #  license as circulated by CEA, CNRS and INRIA at the following URL
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability.
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
25
26 #!/bin/bash
27 # creates the file architecture for a new user package
28
29 if [ $# -lt 5 ]
30     then
31     echo "usage : bbCreateBlackBox <dir-path> <package-name> <blackbox-name> <type> <format> [author] [description] [category]"
32     echo "   type:  "
33     echo "         std  "
34     echo "         VTK_ImageAlgorithm  "
35     echo "         VTK_PolyDataAlgorithm  "
36     echo "         widget  "
37     echo "   format:  "
38     echo "         XML  "
39     echo "         C++ "
40 #bbCreateBox <template-xml-file-name> <box-name> <package-name> [author] [description] [category]"  
41     exit
42 fi
43
44 # bbCreatePackage path
45 TMP=$(which $0|rev)
46 BINPATH=$(echo ${TMP#*/}|rev)
47 #INPUT=$1
48
49 OUTPUT_DIR=$1
50 PACKAGE=$2
51 BOX=$3
52 TYPE=$4
53 FORMAT=$5
54 AUTHOR=$6
55 DESCRIPTION=$7
56 CATEGORY=$8
57 # Input template file 
58 INPUT=${BINPATH}/@bbCreateBlackBox_DATA_REL_PATH_FROM_BIN@/xml-templates/${TYPE}-template.xml
59 FILENAME=bb${PACKAGE}${BOX}
60
61 echo "output dir  = " $OUTPUT_DIR
62 echo "box name    = " $BOX
63 echo "package     = " $PACKAGE
64 echo "author      = " $AUTHOR
65 echo "description = " $DESCRIPTION
66 echo "category    = " $CATEGORY
67 echo "type        = " $TYPE
68 echo "format      = " $FORMAT
69 echo "input       = " $INPUT
70
71
72 echo "** Creating new black box  '$BOX' in folder '$OUTPUT_DIR'"
73
74 if [ -f ${OUTPUT_DIR}/${FILENAME}.xml ]
75     then
76     echo "Error : ${OUTPUT_DIR}/${FILENAME}.xml already exists"
77     exit
78 fi
79
80 echo " - Creating ${FILENAME}.xml"
81
82 sed s,__BLACKBOXNAME__,"${BOX}", < ${INPUT} | sed  s/__AUTHOR__/"${AUTHOR}"/ | sed s{__DESCRIPTION__{"${DESCRIPTION}"{ | sed s/__CATEGORY__/"${CATEGORY}"/ > ${OUTPUT_DIR}/${FILENAME}.xml
83            
84 if [ "${FORMAT}" = "C++" ]
85     then
86     if [ -f ${OUTPUT_DIR}/${FILENAME}.h ]
87         then
88         echo "Error : ${OUTPUT_DIR}/${FILENAME}.h already exists"
89         exit
90     fi
91     echo " - Creating ${FILENAME}.h/cxx"
92     ${BINPATH}/bbfy ${OUTPUT_DIR}/${FILENAME}.xml ${PACKAGE} ${OUTPUT_DIR}/ -q
93     echo " - Deleting ${FILENAME}.xml"
94     rm ${OUTPUT_DIR}/${FILENAME}.xml
95 fi
96
97 echo "Black box created !"
98