scaffold  1.0.0
Generates files and directories based on templates and user input
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
scafrex.h
Go to the documentation of this file.
1 /* ========================================================================= */
2 /* ------------------------------------------------------------------------- *//*
12 
13 
14  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15  Please read COPYING and README files in root folder
16  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 */
18 /* ------------------------------------------------------------------------- */
19 /* ========================================================================= */
20 #ifndef __SCAFREX_INC__
21 #define __SCAFREX_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <libbbb/memtrack.h>
29 #include <libbbb/rexscript.h>
30 #include <scaffold/scaffold-predefined-commands.h>
31 
32 /* INCLUDES ============================================================ */
33 //
34 //
35 //
36 //
37 /* DEFINITIONS --------------------------------------------------------- */
38 
39 class QCoreApplication;
40 
41 namespace scaffold {
42 
43 class Scaffold;
44 class Generator;
45 
46 /* DEFINITIONS ========================================================= */
47 //
48 //
49 //
50 //
51 /* CLASS --------------------------------------------------------------- */
52 
56 class Scafrex : public bbb::RexScript, public MemTrack {
57  BBM_TRACK( Scafrex );
58 
59  //
60  //
61  //
62  //
63  /* DEFINITIONS ----------------------------------------------------- */
64 
66 # define VGLOB_PRJPATH "PRJPATH"
67 
69 # define VGLOB_TPATH "TPATH"
70 
72 # define VGLOB_DMP_TIMEOUT "DMP_TIMEOUT"
73 
74 # define VGLOB_DMP_EDITCOST "DMP_EDITCOST"
75 
76 # define VGLOB_DMP_TRESH "DMP_TRESH"
77 
78 # define VGLOB_DMP_DIST "DMP_DIST"
79 
80 # define VGLOB_DMP_DELTRESH "DMP_DELTRESH"
81 
82 # define VGLOB_DMP_MARGIN "DMP_MARGIN"
83 
84 
85  /* DEFINITIONS ===================================================== */
86  //
87  //
88  //
89  //
90  /* DATA ------------------------------------------------------------ */
91 
92 private:
93 
95  Scaffold * parent_;
96 
97 
98  /* DATA ============================================================ */
99  //
100  //
101  //
102  //
103  /* FUNCTIONS ------------------------------------------------------- */
104 
105 public:
106 
108  Scafrex (
109  Scaffold * parent,
110  const QStringList & init_files,
111  const bbb::VarMap & var_map
112  );
113 
115  virtual ~Scafrex ( void );
116 
118  int run ( QCoreApplication & app );
119 
120 
121 private:
122 
124  bool helperLogType ( const QString & s_val, int & ty );
125 
126 
128 
134  bbb::VarMap * decideVar (
135  const QString & s_in,
136  QString & s_out
137  );
138 
139 
141 
153  virtual QString interpret (
154  const QString & s_in,
155  bool & b_ok,
156  bbb::VarMap * vm = NULL
157  );
158 
160 
168  virtual bbb::VarData * getVarData ( const QString & s, bool b_create = true );
169 
171  virtual bool delVariable (
172  const QString & s
173  );
174 
176  void initMyCommands ( void );
177 
178 public:
179 
181 
188  bool fixFilePath ( const QString & s_in, QString & s_out );
189 
190 
191 private:
192 
193 
196  static bool commandProject ( RexScript * rexs, const CmdEntry & cmd );
197  static bool commandGenerator ( RexScript * rexs, const CmdEntry & cmd );
198  static bool commandTemplate ( RexScript * rexs, const CmdEntry & cmd );
199  static bool commandOverwrite ( RexScript * rexs, const CmdEntry & cmd );
201 
204  static bool blockDescr ( RexScript * rexs, const bbb::RexSBCallBack * blk );
206 
207  /* FUNCTIONS ======================================================= */
208  //
209  //
210  //
211  //
212 
213 }; /* class Scafrex */
214 
215 /* CLASS =============================================================== */
216 //
217 //
218 //
219 //
220 
221 } // namespace scaffold
222 
223 #endif // __SCAFREX_INC__
224 /* ------------------------------------------------------------------------- */
225 /* ========================================================================= */