2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <html xmlns="http://www.w3.org/1999/xhtml">
7 <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9 <title>src.fileEnviron — salomeTools 5.0.0dev documentation</title>
10 <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
11 <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
12 <script type="text/javascript" src="../../_static/documentation_options.js"></script>
13 <script type="text/javascript" src="../../_static/jquery.js"></script>
14 <script type="text/javascript" src="../../_static/underscore.js"></script>
15 <script type="text/javascript" src="../../_static/doctools.js"></script>
16 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
17 <link rel="index" title="Index" href="../../genindex.html" />
18 <link rel="search" title="Search" href="../../search.html" />
20 <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
23 <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
28 <div class="document">
29 <div class="documentwrapper">
30 <div class="bodywrapper">
31 <div class="body" role="main">
33 <h1>Source code for src.fileEnviron</h1><div class="highlight"><pre>
34 <span></span><span class="ch">#!/usr/bin/env python</span>
35 <span class="c1">#-*- coding:utf-8 -*-</span>
36 <span class="c1"># Copyright (C) 2010-2013 CEA/DEN</span>
37 <span class="c1">#</span>
38 <span class="c1"># This library is free software; you can redistribute it and/or</span>
39 <span class="c1"># modify it under the terms of the GNU Lesser General Public</span>
40 <span class="c1"># License as published by the Free Software Foundation; either</span>
41 <span class="c1"># version 2.1 of the License.</span>
42 <span class="c1">#</span>
43 <span class="c1"># This library is distributed in the hope that it will be useful,</span>
44 <span class="c1"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
45 <span class="c1"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
46 <span class="c1"># Lesser General Public License for more details.</span>
47 <span class="c1">#</span>
48 <span class="c1"># You should have received a copy of the GNU Lesser General Public</span>
49 <span class="c1"># License along with this library; if not, write to the Free Software</span>
50 <span class="c1"># Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
52 <span class="kn">import</span> <span class="nn">os</span>
53 <span class="kn">import</span> <span class="nn">pprint</span> <span class="k">as</span> <span class="nn">PP</span>
54 <span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
56 <span class="n">bat_header</span><span class="o">=</span><span class="s2">"""</span><span class="se">\</span>
57 <span class="s2">@echo off</span>
59 <span class="s2">rem The following variables are used only in case of a sat package</span>
60 <span class="s2">set out_dir_Path=%~dp0</span>
61 <span class="s2">set PRODUCT_OUT_DIR=</span><span class="si">%o</span><span class="s2">ut_dir_Path%</span>
62 <span class="s2">set prereq_install_Path=</span><span class="si">%o</span><span class="s2">ut_dir_Path%\PREREQUISITES\INSTALL</span>
63 <span class="s2">set prereq_build_Path=</span><span class="si">%o</span><span class="s2">ut_dir_Path%\PREREQUISITES\BUILD</span>
64 <span class="s2">"""</span>
67 <span class="n">bash_header</span><span class="o">=</span><span class="s2">"""</span><span class="se">\</span>
68 <span class="s2">#!/bin/bash</span>
69 <span class="s2">##########################################################################</span>
70 <span class="s2">#</span>
71 <span class="s2">#### cleandup ###</span>
72 <span class="s2"># cleanup a path (first parameter) from duplicated entries;</span>
73 <span class="s2"># second parameter is the separator</span>
74 <span class="s2">cleandup() {</span>
75 <span class="s2">out_var=`echo $1 | awk -v sep=$2 '{ </span><span class="se">\\</span><span class="s2"></span>
76 <span class="s2"> na = split($1,a,sep); </span><span class="se">\\</span><span class="s2"></span>
77 <span class="s2"> k=0; </span><span class="se">\\</span><span class="s2"></span>
78 <span class="s2"> for(i=0;i<=na;i++) { </span><span class="se">\\</span><span class="s2"></span>
79 <span class="s2"> found=0; </span><span class="se">\\</span><span class="s2"></span>
80 <span class="s2"> for(j=0;j<k;j++) { </span><span class="se">\\</span><span class="s2"></span>
81 <span class="s2"> if(a[i]==aa[j]) </span><span class="se">\\</span><span class="s2"></span>
82 <span class="s2"> { </span><span class="se">\\</span><span class="s2"></span>
83 <span class="s2"> found=1; </span><span class="se">\\</span><span class="s2"></span>
84 <span class="s2"> break; </span><span class="se">\\</span><span class="s2"></span>
85 <span class="s2"> }; </span><span class="se">\\</span><span class="s2"></span>
86 <span class="s2"> }; </span><span class="se">\\</span><span class="s2"></span>
87 <span class="s2"> if(found==0) { </span><span class="se">\\</span><span class="s2"></span>
88 <span class="s2"> aa[k++]=a[i]; </span><span class="se">\\</span><span class="s2"></span>
89 <span class="s2"> }; </span><span class="se">\\</span><span class="s2"></span>
90 <span class="s2"> }; </span><span class="se">\\</span><span class="s2"></span>
91 <span class="s2"> ORS=sep; </span><span class="se">\\</span><span class="s2"></span>
92 <span class="s2"> for(i=0;i<k;i++) { </span><span class="se">\\</span><span class="s2"></span>
93 <span class="s2"> print aa[i]; </span><span class="se">\\</span><span class="s2"></span>
94 <span class="s2"> } </span><span class="se">\\</span><span class="s2"></span>
95 <span class="s2"> }' | sed -e 's|</span><span class="se">\\</span><span class="s2">(.*</span><span class="se">\\</span><span class="s2">)$1|</span><span class="se">\\</span><span class="s2">1|g' -e 's|^[:;]||' -e 's|[:;]$||'`</span>
96 <span class="s2">echo $out_var</span>
97 <span class="s2">}</span>
98 <span class="s2">### clean ###</span>
99 <span class="s2">clean ()</span>
100 <span class="s2">{</span>
101 <span class="s2">xenv=`printenv $1`</span>
102 <span class="s2">out_var=`cleandup $xenv $2`</span>
103 <span class="s2">export $1=$out_var</span>
104 <span class="s2">}</span>
106 <span class="s2"># The 3 following variables are used only in case of a sat package</span>
107 <span class="s2">export out_dir_Path=$(cd $(dirname $</span><span class="si">{BASH_SOURCE[0]}</span><span class="s2">);pwd)</span>
108 <span class="s2">export PRODUCT_OUT_DIR=$</span><span class="si">{out_dir_Path}</span><span class="s2"></span>
109 <span class="s2">export PRODUCT_ROOT_DIR=$</span><span class="si">{PRODUCT_OUT_DIR}</span><span class="s2"></span>
111 <span class="s2">###########################################################################</span>
112 <span class="s2">"""</span>
114 <span class="n">cfg_header</span><span class="o">=</span><span class="s2">"""</span><span class="se">\</span>
115 <span class="s2">[SALOME Configuration]</span>
116 <span class="s2">"""</span>
118 <span class="n">Launcher_header</span><span class="o">=</span><span class="s2">"""</span><span class="se">\</span>
119 <span class="s2"># a generated SALOME Configuration file using python syntax</span>
120 <span class="s2">"""</span>
122 <div class="viewcode-block" id="get_file_environ"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.get_file_environ">[docs]</a><span class="k">def</span> <span class="nf">get_file_environ</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">shell</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
123 <span class="sd">"""Instantiate correct FileEnvironment sub-class.</span>
124 <span class="sd"> </span>
125 <span class="sd"> :param output file: the output file stream.</span>
126 <span class="sd"> :param shell str: the type of shell syntax to use.</span>
127 <span class="sd"> :param environ dict: a potential additional environment.</span>
128 <span class="sd"> """</span>
129 <span class="k">if</span> <span class="n">shell</span> <span class="o">==</span> <span class="s2">"bash"</span><span class="p">:</span>
130 <span class="k">return</span> <span class="n">BashFileEnviron</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
131 <span class="k">if</span> <span class="n">shell</span> <span class="o">==</span> <span class="s2">"bat"</span><span class="p">:</span>
132 <span class="k">return</span> <span class="n">BatFileEnviron</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
133 <span class="k">if</span> <span class="n">shell</span> <span class="o">==</span> <span class="s2">"cfgForPy"</span><span class="p">:</span>
134 <span class="k">return</span> <span class="n">LauncherFileEnviron</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
135 <span class="k">if</span> <span class="n">shell</span> <span class="o">==</span> <span class="s2">"cfg"</span><span class="p">:</span>
136 <span class="k">return</span> <span class="n">ContextFileEnviron</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
137 <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"FileEnviron: Unknown shell = </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">shell</span><span class="p">)</span></div>
139 <div class="viewcode-block" id="FileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron">[docs]</a><span class="k">class</span> <span class="nc">FileEnviron</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
140 <span class="sd">"""\</span>
141 <span class="sd"> Base class for shell environment</span>
142 <span class="sd"> """</span>
143 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
144 <span class="sd">"""\</span>
145 <span class="sd"> Initialization</span>
146 <span class="sd"> </span>
147 <span class="sd"> :param output file: the output file stream.</span>
148 <span class="sd"> :param environ dict: a potential additional environment.</span>
149 <span class="sd"> """</span>
150 <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
152 <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
153 <span class="sd">"""\</span>
154 <span class="sd"> easy non exhaustive quick resume for debug print"""</span>
155 <span class="n">res</span> <span class="o">=</span> <span class="p">{</span>
156 <span class="s2">"output"</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="p">,</span>
157 <span class="s2">"environ"</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">,</span>
158 <span class="p">}</span>
159 <span class="k">return</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">(</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">)"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">PP</span><span class="o">.</span><span class="n">pformat</span><span class="p">(</span><span class="n">res</span><span class="p">))</span>
162 <span class="k">def</span> <span class="nf">_do_init</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
163 <span class="sd">"""\</span>
164 <span class="sd"> Initialization</span>
165 <span class="sd"> </span>
166 <span class="sd"> :param output file: the output file stream.</span>
167 <span class="sd"> :param environ dict: a potential additional environment.</span>
168 <span class="sd"> """</span>
169 <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">output</span>
170 <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span> <span class="o">=</span> <span class="p">[]</span>
171 <span class="k">if</span> <span class="n">environ</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
172 <span class="c1">#if str(type(environ)) == "<type 'instance'>":</span>
173 <span class="k">if</span> <span class="nb">id</span><span class="p">(</span><span class="n">environ</span><span class="p">)</span> <span class="o">==</span> <span class="nb">id</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
174 <span class="n">DBG</span><span class="o">.</span><span class="n">tofix</span><span class="p">(</span><span class="s2">"set </span><span class="si">%s</span><span class="s2"> environ as python os.environ, are you sure it is safe ?"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
175 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">environ</span>
176 <span class="k">else</span><span class="p">:</span>
177 <span class="n">DBG</span><span class="o">.</span><span class="n">tofix</span><span class="p">(</span><span class="s2">"set </span><span class="si">%s</span><span class="s2"> environ as COPY of python os.environ, are you sure it is safe ?"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
178 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">)</span> <span class="c1">#make a copy cvw 180320</span>
180 <div class="viewcode-block" id="FileEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_line">[docs]</a> <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
181 <span class="sd">"""\</span>
182 <span class="sd"> Add some empty lines in the shell file</span>
183 <span class="sd"> </span>
184 <span class="sd"> :param number int: the number of lines to add</span>
185 <span class="sd"> """</span>
186 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">*</span> <span class="n">number</span><span class="p">)</span></div>
188 <div class="viewcode-block" id="FileEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_comment">[docs]</a> <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
189 <span class="sd">"""\</span>
190 <span class="sd"> Add a comment in the shell file</span>
191 <span class="sd"> </span>
192 <span class="sd"> :param comment str: the comment to add</span>
193 <span class="sd"> """</span>
194 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"# </span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="n">comment</span><span class="p">)</span></div>
196 <div class="viewcode-block" id="FileEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_echo">[docs]</a> <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
197 <span class="sd">"""\</span>
198 <span class="sd"> Add a "echo" in the shell file</span>
199 <span class="sd"> </span>
200 <span class="sd"> :param text str: the text to echo</span>
201 <span class="sd"> """</span>
202 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'echo </span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span></div>
204 <div class="viewcode-block" id="FileEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_warning">[docs]</a> <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
205 <span class="sd">"""\</span>
206 <span class="sd"> Add a warning "echo" in the shell file</span>
207 <span class="sd"> </span>
208 <span class="sd"> :param warning str: the text to echo</span>
209 <span class="sd"> """</span>
210 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'echo "WARNING </span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">warning</span><span class="p">)</span></div>
212 <div class="viewcode-block" id="FileEnviron.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.append_value">[docs]</a> <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
213 <span class="sd">"""\</span>
214 <span class="sd"> append value to key using sep</span>
215 <span class="sd"> </span>
216 <span class="sd"> :param key str: the environment variable to append</span>
217 <span class="sd"> :param value str: the value to append to key</span>
218 <span class="sd"> :param sep str: the separator string</span>
219 <span class="sd"> """</span>
220 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="n">value</span><span class="p">)</span>
221 <span class="k">if</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="p">:</span>
222 <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">))</span></div>
224 <div class="viewcode-block" id="FileEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.append">[docs]</a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
225 <span class="sd">"""\</span>
226 <span class="sd"> Same as append_value but the value argument can be a list</span>
227 <span class="sd"> </span>
228 <span class="sd"> :param key str: the environment variable to append</span>
229 <span class="sd"> :param value str or list: the value(s) to append to key</span>
230 <span class="sd"> :param sep str: the separator string</span>
231 <span class="sd"> """</span>
232 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
233 <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
234 <span class="k">else</span><span class="p">:</span>
235 <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
237 <div class="viewcode-block" id="FileEnviron.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.prepend_value">[docs]</a> <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
238 <span class="sd">"""\</span>
239 <span class="sd"> prepend value to key using sep</span>
240 <span class="sd"> </span>
241 <span class="sd"> :param key str: the environment variable to prepend</span>
242 <span class="sd"> :param value str: the value to prepend to key</span>
243 <span class="sd"> :param sep str: the separator string</span>
244 <span class="sd"> """</span>
245 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">))</span>
246 <span class="k">if</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="p">:</span>
247 <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">))</span></div>
249 <div class="viewcode-block" id="FileEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.prepend">[docs]</a> <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
250 <span class="sd">"""\</span>
251 <span class="sd"> Same as prepend_value but the value argument can be a list</span>
252 <span class="sd"> </span>
253 <span class="sd"> :param key str: the environment variable to prepend</span>
254 <span class="sd"> :param value str or list: the value(s) to prepend to key</span>
255 <span class="sd"> :param sep str: the separator string</span>
256 <span class="sd"> """</span>
257 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
258 <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
259 <span class="k">else</span><span class="p">:</span>
260 <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
262 <div class="viewcode-block" id="FileEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.is_defined">[docs]</a> <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
263 <span class="sd">"""\</span>
264 <span class="sd"> Check if the key exists in the environment</span>
265 <span class="sd"> </span>
266 <span class="sd"> :param key str: the environment variable to check</span>
267 <span class="sd"> """</span>
268 <span class="k">return</span> <span class="p">(</span><span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">)</span></div>
270 <div class="viewcode-block" id="FileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.set">[docs]</a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
271 <span class="sd">"""\</span>
272 <span class="sd"> Set the environment variable 'key' to value 'value'</span>
273 <span class="sd"> </span>
274 <span class="sd"> :param key str: the environment variable to set</span>
275 <span class="sd"> :param value str: the value</span>
276 <span class="sd"> """</span>
277 <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"set is not implement for this shell!"</span><span class="p">)</span></div>
279 <div class="viewcode-block" id="FileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.get">[docs]</a> <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
280 <span class="sd">"""\</span>
281 <span class="sd"> Get the value of the environment variable "key"</span>
282 <span class="sd"> </span>
283 <span class="sd"> :param key str: the environment variable</span>
284 <span class="sd"> """</span>
285 <span class="k">return</span> <span class="s1">'${</span><span class="si">%s</span><span class="s1">}'</span> <span class="o">%</span> <span class="n">key</span></div>
287 <div class="viewcode-block" id="FileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.command_value">[docs]</a> <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
288 <span class="sd">"""\</span>
289 <span class="sd"> Get the value given by the system command "command" </span>
290 <span class="sd"> and put it in the environment variable key.</span>
291 <span class="sd"> Has to be overwritten in the derived classes</span>
292 <span class="sd"> This can be seen as a virtual method</span>
293 <span class="sd"> </span>
294 <span class="sd"> :param key str: the environment variable</span>
295 <span class="sd"> :param command str: the command to execute</span>
296 <span class="sd"> """</span>
297 <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"command_value is not implement "</span>
298 <span class="s2">"for this shell!"</span><span class="p">)</span></div>
300 <div class="viewcode-block" id="FileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.finish">[docs]</a> <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
301 <span class="sd">"""Add a final instruction in the out file (in case of file generation)</span>
302 <span class="sd"> </span>
303 <span class="sd"> :param required bool: Do nothing if required is False</span>
304 <span class="sd"> """</span>
305 <span class="k">for</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="p">:</span>
306 <span class="k">if</span> <span class="n">sep</span> <span class="o">!=</span> <span class="s1">' '</span><span class="p">:</span>
307 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'clean </span><span class="si">%s</span><span class="s1"> "</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">))</span></div></div>
309 <div class="viewcode-block" id="BashFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">BashFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
310 <span class="sd">"""\</span>
311 <span class="sd"> Class for bash shell.</span>
312 <span class="sd"> """</span>
313 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
314 <span class="sd">"""Initialization</span>
315 <span class="sd"> </span>
316 <span class="sd"> :param output file: the output file stream.</span>
317 <span class="sd"> :param environ dict: a potential additional environment.</span>
318 <span class="sd"> """</span>
319 <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
320 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">bash_header</span><span class="p">)</span>
322 <div class="viewcode-block" id="BashFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.set">[docs]</a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
323 <span class="sd">"""Set the environment variable "key" to value "value"</span>
324 <span class="sd"> </span>
325 <span class="sd"> :param key str: the environment variable to set</span>
326 <span class="sd"> :param value str: the value</span>
327 <span class="sd"> """</span>
328 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'export </span><span class="si">%s</span><span class="s1">="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
329 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
331 <div class="viewcode-block" id="BashFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.command_value">[docs]</a> <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
332 <span class="sd">"""\</span>
333 <span class="sd"> Get the value given by the system command "command" </span>
334 <span class="sd"> and put it in the environment variable key.</span>
335 <span class="sd"> Has to be overwritten in the derived classes</span>
336 <span class="sd"> This can be seen as a virtual method</span>
337 <span class="sd"> </span>
338 <span class="sd"> :param key str: the environment variable</span>
339 <span class="sd"> :param command str: the command to execute</span>
340 <span class="sd"> """</span>
341 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'export </span><span class="si">%s</span><span class="s1">=$(</span><span class="si">%s</span><span class="s1">)</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">))</span></div>
343 <div class="viewcode-block" id="BashFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.finish">[docs]</a> <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
344 <span class="sd">"""Add a final instruction in the out file (in case of file generation)</span>
345 <span class="sd"> </span>
346 <span class="sd"> :param required bool: Do nothing if required is False</span>
347 <span class="sd"> """</span>
348 <span class="k">if</span> <span class="ow">not</span> <span class="n">required</span><span class="p">:</span>
349 <span class="k">return</span>
350 <span class="n">FileEnviron</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="p">)</span></div></div>
352 <div class="viewcode-block" id="BatFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">BatFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
353 <span class="sd">"""\</span>
354 <span class="sd"> for Windows batch shell.</span>
355 <span class="sd"> """</span>
356 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
357 <span class="sd">"""Initialization</span>
358 <span class="sd"> </span>
359 <span class="sd"> :param output file: the output file stream.</span>
360 <span class="sd"> :param environ dict: a potential additional environment.</span>
361 <span class="sd"> """</span>
362 <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
363 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">bat_header</span><span class="p">)</span>
365 <div class="viewcode-block" id="BatFileEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.add_comment">[docs]</a> <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
366 <span class="sd">"""Add a comment in the shell file</span>
367 <span class="sd"> </span>
368 <span class="sd"> :param comment str: the comment to add</span>
369 <span class="sd"> """</span>
370 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"rem </span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="n">comment</span><span class="p">)</span></div>
372 <div class="viewcode-block" id="BatFileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.get">[docs]</a> <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
373 <span class="sd">"""Get the value of the environment variable "key"</span>
374 <span class="sd"> </span>
375 <span class="sd"> :param key str: the environment variable</span>
376 <span class="sd"> """</span>
377 <span class="k">return</span> <span class="s1">'</span><span class="si">%%%s%%</span><span class="s1">'</span> <span class="o">%</span> <span class="n">key</span></div>
379 <div class="viewcode-block" id="BatFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.set">[docs]</a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
380 <span class="sd">"""Set the environment variable "key" to value "value"</span>
381 <span class="sd"> </span>
382 <span class="sd"> :param key str: the environment variable to set</span>
383 <span class="sd"> :param value str: the value</span>
384 <span class="sd"> """</span>
385 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'set </span><span class="si">%s</span><span class="s1">=</span><span class="si">%s</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
386 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
388 <div class="viewcode-block" id="BatFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.command_value">[docs]</a> <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
389 <span class="sd">"""\</span>
390 <span class="sd"> Get the value given by the system command "command" </span>
391 <span class="sd"> and put it in the environment variable key.</span>
392 <span class="sd"> Has to be overwritten in the derived classes</span>
393 <span class="sd"> This can be seen as a virtual method</span>
394 <span class="sd"> </span>
395 <span class="sd"> :param key str: the environment variable</span>
396 <span class="sd"> :param command str: the command to execute</span>
397 <span class="sd"> """</span>
398 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1"> > tmp.txt</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">command</span><span class="p">))</span>
399 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'set /p </span><span class="si">%s</span><span class="s1"> =< tmp.txt</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">))</span></div>
401 <div class="viewcode-block" id="BatFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.finish">[docs]</a> <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
402 <span class="sd">"""\</span>
403 <span class="sd"> Add a final instruction in the out file (in case of file generation)</span>
404 <span class="sd"> In the particular windows case, do nothing</span>
405 <span class="sd"> </span>
406 <span class="sd"> :param required bool: Do nothing if required is False</span>
407 <span class="sd"> """</span>
408 <span class="k">return</span></div></div>
410 <div class="viewcode-block" id="ContextFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">ContextFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
411 <span class="sd">"""Class for a salome context configuration file.</span>
412 <span class="sd"> """</span>
413 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
414 <span class="sd">"""Initialization</span>
415 <span class="sd"> </span>
416 <span class="sd"> :param output file: the output file stream.</span>
417 <span class="sd"> :param environ dict: a potential additional environment.</span>
418 <span class="sd"> """</span>
419 <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
420 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">cfg_header</span><span class="p">)</span>
422 <div class="viewcode-block" id="ContextFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.set">[docs]</a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
423 <span class="sd">"""Set the environment variable "key" to value "value"</span>
424 <span class="sd"> </span>
425 <span class="sd"> :param key str: the environment variable to set</span>
426 <span class="sd"> :param value str: the value</span>
427 <span class="sd"> """</span>
428 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1">="</span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
429 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
431 <div class="viewcode-block" id="ContextFileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.get">[docs]</a> <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
432 <span class="sd">"""Get the value of the environment variable "key"</span>
433 <span class="sd"> </span>
434 <span class="sd"> :param key str: the environment variable</span>
435 <span class="sd"> """</span>
436 <span class="k">return</span> <span class="s1">'%(</span><span class="si">{0}</span><span class="s1">)s'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">key</span><span class="p">)</span></div>
438 <div class="viewcode-block" id="ContextFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.command_value">[docs]</a> <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
439 <span class="sd">"""\</span>
440 <span class="sd"> Get the value given by the system command "command" </span>
441 <span class="sd"> and put it in the environment variable key.</span>
442 <span class="sd"> Has to be overwritten in the derived classes</span>
443 <span class="sd"> This can be seen as a virtual method</span>
444 <span class="sd"> </span>
445 <span class="sd"> :param key str: the environment variable</span>
446 <span class="sd"> :param command str: the command to execute</span>
447 <span class="sd"> """</span>
448 <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"command_value is not implement "</span>
449 <span class="s2">"for salome context files!"</span><span class="p">)</span></div>
451 <div class="viewcode-block" id="ContextFileEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.add_echo">[docs]</a> <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
452 <span class="sd">"""Add a comment</span>
453 <span class="sd"> </span>
454 <span class="sd"> :param text str: the comment to add</span>
455 <span class="sd"> """</span>
456 <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="n">text</span><span class="p">)</span></div>
458 <div class="viewcode-block" id="ContextFileEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.add_warning">[docs]</a> <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
459 <span class="sd">"""Add a warning</span>
460 <span class="sd"> </span>
461 <span class="sd"> :param text str: the warning to add</span>
462 <span class="sd"> """</span>
463 <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="s2">"WARNING </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">warning</span><span class="p">)</span></div>
465 <div class="viewcode-block" id="ContextFileEnviron.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.prepend_value">[docs]</a> <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
466 <span class="sd">"""prepend value to key using sep</span>
467 <span class="sd"> </span>
468 <span class="sd"> :param key str: the environment variable to prepend</span>
469 <span class="sd"> :param value str: the value to prepend to key</span>
470 <span class="sd"> :param sep str: the separator string</span>
471 <span class="sd"> """</span>
472 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'ADD_TO_</span><span class="si">%s</span><span class="s1">: </span><span class="si">%s</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span></div>
474 <div class="viewcode-block" id="ContextFileEnviron.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.append_value">[docs]</a> <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
475 <span class="sd">"""append value to key using sep</span>
476 <span class="sd"> </span>
477 <span class="sd"> :param key str: the environment variable to append</span>
478 <span class="sd"> :param value str: the value to append to key</span>
479 <span class="sd"> :param sep str: the separator string</span>
480 <span class="sd"> """</span>
481 <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
483 <div class="viewcode-block" id="ContextFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.finish">[docs]</a> <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
484 <span class="sd">"""Add a final instruction in the out file (in case of file generation)</span>
485 <span class="sd"> </span>
486 <span class="sd"> :param required bool: Do nothing if required is False</span>
487 <span class="sd"> """</span>
488 <span class="k">return</span></div></div>
490 <div class="viewcode-block" id="special_path_separator"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.special_path_separator">[docs]</a><span class="k">def</span> <span class="nf">special_path_separator</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
491 <span class="sd">"""\</span>
492 <span class="sd"> TCLLIBPATH, TKLIBPATH, PV_PLUGIN_PATH environments variables need</span>
493 <span class="sd"> some exotic path separator.</span>
494 <span class="sd"> This function gives the separator regarding the name of the variable</span>
495 <span class="sd"> to append or prepend.</span>
496 <span class="sd"> </span>
497 <span class="sd"> :param name str: The name of the variable to find the separator</span>
498 <span class="sd"> """</span>
499 <span class="n">special_blanks_keys</span><span class="o">=</span><span class="p">[</span><span class="s2">"TCLLIBPATH"</span><span class="p">,</span> <span class="s2">"TKLIBPATH"</span><span class="p">]</span>
500 <span class="n">special_semicolon_keys</span><span class="o">=</span><span class="p">[</span><span class="s2">"PV_PLUGIN_PATH"</span><span class="p">]</span>
501 <span class="n">res</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span>
502 <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">special_blanks_keys</span><span class="p">:</span> <span class="n">res</span><span class="o">=</span><span class="s2">" "</span>
503 <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">special_semicolon_keys</span><span class="p">:</span> <span class="n">res</span><span class="o">=</span><span class="s2">";"</span>
504 <span class="k">return</span> <span class="n">res</span></div>
506 <div class="viewcode-block" id="LauncherFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">LauncherFileEnviron</span><span class="p">:</span>
507 <span class="sd">"""\</span>
508 <span class="sd"> Class to generate a launcher file script </span>
509 <span class="sd"> (in python syntax) SalomeContext API</span>
510 <span class="sd"> """</span>
511 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
512 <span class="sd">"""Initialization</span>
513 <span class="sd"> </span>
514 <span class="sd"> :param output file: the output file stream.</span>
515 <span class="sd"> :param environ dict: a potential additional environment.</span>
516 <span class="sd"> """</span>
517 <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">output</span>
518 <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span> <span class="o">=</span> <span class="p">[]</span>
519 <span class="k">if</span> <span class="n">environ</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
520 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">environ</span>
521 <span class="k">else</span><span class="p">:</span>
522 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span>
523 <span class="c1"># Initialize some variables</span>
524 <span class="k">if</span> <span class="ow">not</span> <span class="s2">"PATH"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
525 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"PATH"</span><span class="p">]</span><span class="o">=</span><span class="s2">""</span>
526 <span class="k">if</span> <span class="ow">not</span> <span class="s2">"LD_LIBRARY_PATH"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
527 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"LD_LIBRARY_PATH"</span><span class="p">]</span><span class="o">=</span><span class="s2">""</span>
528 <span class="k">if</span> <span class="ow">not</span> <span class="s2">"PYTHONPATH"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
529 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"PYTHONPATH"</span><span class="p">]</span><span class="o">=</span><span class="s2">""</span>
530 <span class="k">if</span> <span class="ow">not</span> <span class="s2">"TCLLIBPATH"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
531 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"TCLLIBPATH"</span><span class="p">]</span><span class="o">=</span><span class="s2">""</span>
532 <span class="k">if</span> <span class="ow">not</span> <span class="s2">"TKLIBPATH"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
533 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"TKLIBPATH"</span><span class="p">]</span><span class="o">=</span><span class="s2">""</span>
535 <span class="c1"># four whitespaces for first indentation in a python script</span>
536 <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">=</span><span class="s2">" "</span>
537 <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="o">=</span><span class="s2">"context."</span>
538 <span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">=</span><span class="s2">"setVariable"</span>
540 <span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span><span class="bp">self</span><span class="o">.</span><span class="n">prefix</span>
541 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">Launcher_header</span><span class="p">)</span>
542 <span class="bp">self</span><span class="o">.</span><span class="n">specialKeys</span><span class="o">=</span><span class="p">{</span><span class="s2">"PATH"</span><span class="p">:</span> <span class="s2">"Path"</span><span class="p">,</span>
543 <span class="s2">"LD_LIBRARY_PATH"</span><span class="p">:</span> <span class="s2">"LdLibraryPath"</span><span class="p">,</span>
544 <span class="s2">"PYTHONPATH"</span><span class="p">:</span> <span class="s2">"PythonPath"</span><span class="p">}</span>
546 <div class="viewcode-block" id="LauncherFileEnviron.change_to_launcher"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.change_to_launcher">[docs]</a> <span class="k">def</span> <span class="nf">change_to_launcher</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
547 <span class="n">res</span><span class="o">=</span><span class="n">value</span>
548 <span class="k">return</span> <span class="n">res</span></div>
550 <div class="viewcode-block" id="LauncherFileEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_line">[docs]</a> <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
551 <span class="sd">"""Add some empty lines in the launcher file</span>
552 <span class="sd"> </span>
553 <span class="sd"> :param number int: the number of lines to add</span>
554 <span class="sd"> """</span>
555 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">*</span> <span class="n">number</span><span class="p">)</span></div>
557 <div class="viewcode-block" id="LauncherFileEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_echo">[docs]</a> <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
558 <span class="sd">"""Add a comment</span>
559 <span class="sd"> </span>
560 <span class="sd"> :param text str: the comment to add</span>
561 <span class="sd"> """</span>
562 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'# </span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span></div>
564 <div class="viewcode-block" id="LauncherFileEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_warning">[docs]</a> <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
565 <span class="sd">"""Add a warning</span>
566 <span class="sd"> </span>
567 <span class="sd"> :param text str: the warning to add</span>
568 <span class="sd"> """</span>
569 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'# "WARNING </span><span class="si">%s</span><span class="s1">"</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">warning</span><span class="p">)</span></div>
571 <div class="viewcode-block" id="LauncherFileEnviron.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.append_value">[docs]</a> <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">":"</span><span class="p">):</span>
572 <span class="sd">"""append value to key using sep</span>
573 <span class="sd"> </span>
574 <span class="sd"> :param key str: the environment variable to append</span>
575 <span class="sd"> :param value str: the value to append to key</span>
576 <span class="sd"> :param sep str: the separator string</span>
577 <span class="sd"> """</span>
578 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_defined</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="p">:</span>
579 <span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
580 <span class="k">else</span> <span class="p">:</span>
581 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
583 <div class="viewcode-block" id="LauncherFileEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.append">[docs]</a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">":"</span><span class="p">):</span>
584 <span class="sd">"""Same as append_value but the value argument can be a list</span>
585 <span class="sd"> </span>
586 <span class="sd"> :param key str: the environment variable to append</span>
587 <span class="sd"> :param value str or list: the value(s) to append to key</span>
588 <span class="sd"> :param sep str: the separator string</span>
589 <span class="sd"> """</span>
590 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
591 <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
592 <span class="k">else</span><span class="p">:</span>
593 <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
595 <div class="viewcode-block" id="LauncherFileEnviron.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.prepend_value">[docs]</a> <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">":"</span><span class="p">):</span>
596 <span class="sd">"""prepend value to key using sep</span>
597 <span class="sd"> </span>
598 <span class="sd"> :param key str: the environment variable to prepend</span>
599 <span class="sd"> :param value str: the value to prepend to key</span>
600 <span class="sd"> :param sep str: the separator string</span>
601 <span class="sd"> """</span>
602 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_defined</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="p">:</span>
603 <span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
604 <span class="k">else</span> <span class="p">:</span>
605 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
607 <div class="viewcode-block" id="LauncherFileEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.prepend">[docs]</a> <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">":"</span><span class="p">):</span>
608 <span class="sd">"""Same as prepend_value but the value argument can be a list</span>
609 <span class="sd"> </span>
610 <span class="sd"> :param key str: the environment variable to prepend</span>
611 <span class="sd"> :param value str or list: the value(s) to prepend to key</span>
612 <span class="sd"> :param sep str: the separator string</span>
613 <span class="sd"> """</span>
614 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
615 <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
616 <span class="k">else</span><span class="p">:</span>
617 <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
619 <div class="viewcode-block" id="LauncherFileEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.is_defined">[docs]</a> <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
620 <span class="sd">"""Check if the key exists in the environment</span>
621 <span class="sd"> </span>
622 <span class="sd"> :param key str: the environment variable to check</span>
623 <span class="sd"> """</span>
624 <span class="k">return</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span></div>
626 <div class="viewcode-block" id="LauncherFileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.get">[docs]</a> <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
627 <span class="sd">"""Get the value of the environment variable "key"</span>
628 <span class="sd"> </span>
629 <span class="sd"> :param key str: the environment variable</span>
630 <span class="sd"> """</span>
631 <span class="k">return</span> <span class="s1">'${</span><span class="si">%s</span><span class="s1">}'</span> <span class="o">%</span> <span class="n">key</span></div>
633 <div class="viewcode-block" id="LauncherFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.set">[docs]</a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
634 <span class="sd">"""Set the environment variable "key" to value "value"</span>
635 <span class="sd"> </span>
636 <span class="sd"> :param key str: the environment variable to set</span>
637 <span class="sd"> :param value str: the value</span>
638 <span class="sd"> """</span>
639 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">+</span><span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">+</span>
640 <span class="s1">'(r"</span><span class="si">%s</span><span class="s1">", r"</span><span class="si">%s</span><span class="s1">", overwrite=True)</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span>
641 <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
642 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
644 <div class="viewcode-block" id="LauncherFileEnviron.add"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add">[docs]</a> <span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
645 <span class="sd">"""prepend value to key using sep</span>
646 <span class="sd"> </span>
647 <span class="sd"> :param key str: the environment variable to prepend</span>
648 <span class="sd"> :param value str: the value to prepend to key</span>
649 <span class="sd"> """</span>
650 <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">specialKeys</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
651 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">+</span><span class="s1">'addTo</span><span class="si">%s</span><span class="s1">(r"</span><span class="si">%s</span><span class="s1">")</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span>
652 <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">specialKeys</span><span class="p">[</span><span class="n">key</span><span class="p">],</span>
653 <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
654 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">+=</span><span class="s2">":"</span><span class="o">+</span><span class="n">value</span>
655 <span class="k">return</span>
656 <span class="n">sep</span><span class="o">=</span><span class="n">special_path_separator</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
657 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span>
658 <span class="s1">'#temporary solution!!! have to be defined in API a '</span>
659 <span class="s1">'?dangerous? addToSpecial(r"</span><span class="si">%s</span><span class="s1">", r"</span><span class="si">%s</span><span class="s1">")</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span>
660 <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
661 <span class="c1">#pathsep not precised because do not know future os launch?</span>
662 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">+</span><span class="s1">'addToSpecial(r"</span><span class="si">%s</span><span class="s1">", r"</span><span class="si">%s</span><span class="s1">")</span><span class="se">\n</span><span class="s1">'</span>
663 <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
664 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">+=</span><span class="n">sep</span><span class="o">+</span><span class="n">value</span> <span class="c1">#here yes we know os for current execution</span></div>
666 <div class="viewcode-block" id="LauncherFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.command_value">[docs]</a> <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
667 <span class="sd">"""\</span>
668 <span class="sd"> Get the value given by the system command "command" </span>
669 <span class="sd"> and put it in the environment variable key.</span>
670 <span class="sd"> </span>
671 <span class="sd"> :param key str: the environment variable</span>
672 <span class="sd"> :param command str: the command to execute</span>
673 <span class="sd"> """</span>
674 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span><span class="s1">'#`</span><span class="si">%s</span><span class="s1">`</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="n">command</span><span class="p">)</span>
676 <span class="kn">import</span> <span class="nn">shlex</span><span class="o">,</span> <span class="nn">subprocess</span>
677 <span class="n">args</span> <span class="o">=</span> <span class="n">shlex</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">command</span><span class="p">)</span>
678 <span class="n">res</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span> <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
679 <span class="n">out</span><span class="p">,</span> <span class="n">__</span> <span class="o">=</span> <span class="n">res</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
680 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">+</span>
681 <span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">+</span>
682 <span class="s1">'(r"</span><span class="si">%s</span><span class="s1">", r"</span><span class="si">%s</span><span class="s1">", overwrite=True)</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">out</span><span class="p">))</span></div>
684 <div class="viewcode-block" id="LauncherFileEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_comment">[docs]</a> <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
685 <span class="c1"># Special comment in case of the distène licence</span>
686 <span class="k">if</span> <span class="n">comment</span><span class="o">==</span><span class="s2">"DISTENE license"</span><span class="p">:</span>
687 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span>
688 <span class="s2">"#"</span><span class="o">+</span>
689 <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="o">+</span>
690 <span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">+</span>
691 <span class="s1">'(r"</span><span class="si">%s</span><span class="s1">", r"</span><span class="si">%s</span><span class="s1">", overwrite=True)</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span>
692 <span class="p">(</span><span class="s1">'DISTENE_LICENSE_FILE'</span><span class="p">,</span>
693 <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span>
694 <span class="s1">'Use global envvar: DLIM8VAR'</span><span class="p">)))</span>
695 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span>
696 <span class="s2">"#"</span><span class="o">+</span>
697 <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="o">+</span>
698 <span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">+</span>
699 <span class="s1">'(r"</span><span class="si">%s</span><span class="s1">", r"</span><span class="si">%s</span><span class="s1">", overwrite=True)</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span>
700 <span class="p">(</span><span class="s1">'DLIM8VAR'</span><span class="p">,</span>
701 <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span>
702 <span class="s1">'<your licence>'</span><span class="p">)))</span>
703 <span class="k">return</span>
704 <span class="k">if</span> <span class="s2">"setting environ for"</span> <span class="ow">in</span> <span class="n">comment</span><span class="p">:</span>
705 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span><span class="s2">"#[</span><span class="si">%s</span><span class="s2">]</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span>
706 <span class="n">comment</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"setting environ for "</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
707 <span class="k">return</span>
709 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span><span class="s2">"# </span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="n">comment</span><span class="p">)</span></div>
711 <div class="viewcode-block" id="LauncherFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.finish">[docs]</a> <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
712 <span class="sd">"""\</span>
713 <span class="sd"> Add a final instruction in the out file (in case of file generation)</span>
714 <span class="sd"> In the particular launcher case, do nothing</span>
715 <span class="sd"> </span>
716 <span class="sd"> :param required bool: Do nothing if required is False</span>
717 <span class="sd"> """</span>
718 <span class="k">return</span></div></div>
720 <div class="viewcode-block" id="ScreenEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron">[docs]</a><span class="k">class</span> <span class="nc">ScreenEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
721 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
722 <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
723 <span class="bp">self</span><span class="o">.</span><span class="n">defined</span> <span class="o">=</span> <span class="p">{}</span>
725 <div class="viewcode-block" id="ScreenEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_line">[docs]</a> <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
726 <span class="k">pass</span></div>
728 <div class="viewcode-block" id="ScreenEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_comment">[docs]</a> <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
729 <span class="k">pass</span></div>
731 <div class="viewcode-block" id="ScreenEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_echo">[docs]</a> <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
732 <span class="k">pass</span></div>
734 <div class="viewcode-block" id="ScreenEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_warning">[docs]</a> <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
735 <span class="k">pass</span></div>
737 <div class="viewcode-block" id="ScreenEnviron.write"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.write">[docs]</a> <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sign</span><span class="o">=</span><span class="s2">"="</span><span class="p">):</span>
738 <span class="kn">import</span> <span class="nn">src</span>
739 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">" </span><span class="si">%s%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> \
740 <span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">command</span><span class="p">),</span>
741 <span class="s2">" "</span> <span class="o">*</span> <span class="p">(</span><span class="mi">12</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">command</span><span class="p">)),</span>
742 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcInfo</span><span class="p">(</span><span class="n">name</span><span class="p">),</span> <span class="n">sign</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span></div>
744 <div class="viewcode-block" id="ScreenEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.is_defined">[docs]</a> <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
745 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">defined</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">name</span><span class="p">)</span></div>
747 <div class="viewcode-block" id="ScreenEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.get">[docs]</a> <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
748 <span class="k">return</span> <span class="s2">"${</span><span class="si">%s</span><span class="s2">}"</span> <span class="o">%</span> <span class="n">name</span></div>
750 <div class="viewcode-block" id="ScreenEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.set">[docs]</a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
751 <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"set"</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
752 <span class="bp">self</span><span class="o">.</span><span class="n">defined</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
754 <div class="viewcode-block" id="ScreenEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.prepend">[docs]</a> <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">":"</span><span class="p">):</span>
755 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
756 <span class="n">value</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
757 <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
758 <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"prepend"</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
760 <div class="viewcode-block" id="ScreenEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.append">[docs]</a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">":"</span><span class="p">):</span>
761 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
762 <span class="n">value</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
763 <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="n">value</span>
764 <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"append"</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
766 <div class="viewcode-block" id="ScreenEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.command_value">[docs]</a> <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
767 <span class="k">pass</span></div>
769 <div class="viewcode-block" id="ScreenEnviron.run_env_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.run_env_script">[docs]</a> <span class="k">def</span> <span class="nf">run_env_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">,</span> <span class="n">script</span><span class="p">):</span>
770 <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"load"</span><span class="p">,</span> <span class="n">script</span><span class="p">,</span> <span class="s2">""</span><span class="p">,</span> <span class="n">sign</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span></div></div>
772 <span class="c1"># The SALOME launcher template </span>
773 <span class="n">withProfile</span> <span class="o">=</span> <span class="s2">"""</span><span class="se">\</span>
774 <span class="s2">#! /usr/bin/env python</span>
776 <span class="s2">################################################################</span>
777 <span class="s2"># WARNING: this file is automatically generated by SalomeTools #</span>
778 <span class="s2"># WARNING: and so could be overwritten at any time. #</span>
779 <span class="s2">################################################################</span>
781 <span class="s2">import os</span>
782 <span class="s2">import sys</span>
783 <span class="s2">import subprocess</span>
786 <span class="s2"># Add the pwdPath to able to run the launcher after unpacking a package</span>
787 <span class="s2"># Used only in case of a salomeTools package</span>
788 <span class="s2">out_dir_Path=os.path.abspath(os.path.dirname(__file__))</span>
790 <span class="s2"># Preliminary work to initialize path to SALOME Python modules</span>
791 <span class="s2">def __initialize():</span>
793 <span class="s2"> sys.path[:0] = [ 'BIN_KERNEL_INSTALL_DIR' ]</span>
794 <span class="s2"> os.environ['ABSOLUTE_APPLI_PATH'] = 'KERNEL_INSTALL_DIR'</span>
795 <span class="s2"> </span>
796 <span class="s2"> # define folder to store omniorb config (initially in virtual application folder)</span>
797 <span class="s2"> try:</span>
798 <span class="s2"> from salomeContextUtils import setOmniOrbUserPath</span>
799 <span class="s2"> setOmniOrbUserPath()</span>
800 <span class="s2"> except Exception, e:</span>
801 <span class="s2"> print e</span>
802 <span class="s2"> sys.exit(1)</span>
803 <span class="s2"># End of preliminary work</span>
805 <span class="s2"># salome doc only works for virtual applications. Therefore we overwrite it with this function</span>
806 <span class="s2">def _showDoc(modules):</span>
807 <span class="s2"> for module in modules:</span>
808 <span class="s2"> modulePath = os.getenv(module+"_ROOT_DIR")</span>
809 <span class="s2"> if modulePath != None:</span>
810 <span class="s2"> baseDir = os.path.join(modulePath, "share", "doc", "salome")</span>
811 <span class="s2"> docfile = os.path.join(baseDir, "gui", module.upper(), "index.html")</span>
812 <span class="s2"> if not os.path.isfile(docfile):</span>
813 <span class="s2"> docfile = os.path.join(baseDir, "tui", module.upper(), "index.html")</span>
814 <span class="s2"> if not os.path.isfile(docfile):</span>
815 <span class="s2"> docfile = os.path.join(baseDir, "dev", module.upper(), "index.html")</span>
816 <span class="s2"> if os.path.isfile(docfile):</span>
817 <span class="s2"> out, err = subprocess.Popen(["xdg-open", docfile]).communicate()</span>
818 <span class="s2"> else:</span>
819 <span class="s2"> print "Online documentation is not accessible for module:", module</span>
820 <span class="s2"> else:</span>
821 <span class="s2"> print module+"_ROOT_DIR not found!"</span>
823 <span class="s2">def main(args):</span>
824 <span class="s2"> # Identify application path then locate configuration files</span>
825 <span class="s2"> __initialize()</span>
827 <span class="s2"> if args == ['--help']:</span>
828 <span class="s2"> from salomeContext import usage</span>
829 <span class="s2"> usage()</span>
830 <span class="s2"> sys.exit(0)</span>
832 <span class="s2"> #from salomeContextUtils import getConfigFileNames</span>
833 <span class="s2"> #configFileNames, args, unexisting = getConfigFileNames( args, checkExistence=True )</span>
834 <span class="s2"> #if len(unexisting) > 0:</span>
835 <span class="s2"> # print "ERROR: unexisting configuration file(s): " + ', '.join(unexisting)</span>
836 <span class="s2"> # sys.exit(1)</span>
838 <span class="s2"> # Create a SalomeContext which parses configFileNames to initialize environment</span>
839 <span class="s2"> try:</span>
840 <span class="s2"> from salomeContext import SalomeContext, SalomeContextException</span>
841 <span class="s2"> SalomeContext.addToSpecial=addToSpecial</span>
842 <span class="s2"> context = SalomeContext(None)</span>
843 <span class="s2"> </span>
844 <span class="s2"> # Here set specific variables, if needed</span>
845 <span class="s2"> # context.addToPath('mypath')</span>
846 <span class="s2"> # context.addToLdLibraryPath('myldlibrarypath')</span>
847 <span class="s2"> # context.addToPythonPath('mypythonpath')</span>
848 <span class="s2"> # context.setVariable('myvarname', 'value')</span>
850 <span class="s2"> # Logger level error</span>
851 <span class="s2"> context.getLogger().setLevel(40)</span>
853 <span class="s2"> context.setVariable(r"PRODUCT_ROOT_DIR", out_dir_Path, overwrite=True)</span>
854 <span class="s2"> # here your local standalone environment</span>
856 <span class="s2"> if len(args) >1 and args[0]=='doc':</span>
857 <span class="s2"> _showDoc(args[1:])</span>
858 <span class="s2"> return</span>
860 <span class="s2"> # Start SALOME, parsing command line arguments</span>
861 <span class="s2"> out, err, status = context.runSalome(args)</span>
862 <span class="s2"> sys.exit(status)</span>
864 <span class="s2"> except SalomeContextException, e:</span>
865 <span class="s2"> import logging</span>
866 <span class="s2"> logging.getLogger("salome").error(e)</span>
867 <span class="s2"> sys.exit(1)</span>
868 <span class="s2">#</span>
869 <span class="s2">def addToSpecial(self, name, value, pathSep=None):</span>
870 <span class="s2"> # add special dangerous cases: TCLLIBPATH PV_PLUGIN_PATH etc...</span>
871 <span class="s2"> # http://computer-programming-forum.com/57-tcl/1dfddc136afccb94.htm</span>
872 <span class="s2"> # TCLLIBPATH: Tcl treats the contents of that variable as a list. Be happy, for you can now use drive letters on windows.</span>
873 <span class="s2"> if value == '':</span>
874 <span class="s2"> return</span>
875 <span class="s2"> </span>
876 <span class="s2"> specialBlanksKeys=["TCLLIBPATH", "TKLIBPATH"]</span>
877 <span class="s2"> specialSemicolonKeys=["PV_PLUGIN_PATH"]</span>
878 <span class="s2"> res=os.pathsep</span>
879 <span class="s2"> if name in specialBlanksKeys: res=" "</span>
880 <span class="s2"> if name in specialSemicolonKeys: res=";"</span>
881 <span class="s2"> </span>
882 <span class="s2"> if pathSep==None:</span>
883 <span class="s2"> sep=res</span>
884 <span class="s2"> else:</span>
885 <span class="s2"> sep=pathSep</span>
886 <span class="s2"> value = os.path.expandvars(value) # expand environment variables</span>
887 <span class="s2"> self.getLogger().debug("Add to </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">", name, value)</span>
888 <span class="s2"> env = os.getenv(name, None)</span>
889 <span class="s2"> if env is None:</span>
890 <span class="s2"> os.environ[name] = value</span>
891 <span class="s2"> else:</span>
892 <span class="s2"> os.environ[name] = value + sep + env #explicitely or not special path separator ?whitespace, semicolon?</span>
894 <span class="s2">if __name__ == "__main__":</span>
895 <span class="s2"> args = sys.argv[1:]</span>
896 <span class="s2"> main(args)</span>
897 <span class="s2">#</span>
898 <span class="s2">"""</span>
900 <span class="n">withProfile3</span> <span class="o">=</span> <span class="s2">"""</span><span class="se">\</span>
901 <span class="s2">#! /usr/bin/env python3</span>
903 <span class="s2">################################################################</span>
904 <span class="s2"># WARNING: this file is automatically generated by SalomeTools #</span>
905 <span class="s2"># WARNING: and so could be overwritten at any time. #</span>
906 <span class="s2">################################################################</span>
908 <span class="s2">import os</span>
909 <span class="s2">import sys</span>
910 <span class="s2">import subprocess</span>
913 <span class="s2"># Add the pwdPath to able to run the launcher after unpacking a package</span>
914 <span class="s2"># Used only in case of a salomeTools package</span>
915 <span class="s2">out_dir_Path=os.path.abspath(os.path.dirname(__file__))</span>
917 <span class="s2"># Preliminary work to initialize path to SALOME Python modules</span>
918 <span class="s2">def __initialize():</span>
920 <span class="s2"> sys.path[:0] = [ 'BIN_KERNEL_INSTALL_DIR' ]</span>
921 <span class="s2"> os.environ['ABSOLUTE_APPLI_PATH'] = 'KERNEL_INSTALL_DIR'</span>
922 <span class="s2"> </span>
923 <span class="s2"> # define folder to store omniorb config (initially in virtual application folder)</span>
924 <span class="s2"> try:</span>
925 <span class="s2"> from salomeContextUtils import setOmniOrbUserPath</span>
926 <span class="s2"> setOmniOrbUserPath()</span>
927 <span class="s2"> except Exception as e:</span>
928 <span class="s2"> print(e)</span>
929 <span class="s2"> sys.exit(1)</span>
930 <span class="s2"># End of preliminary work</span>
932 <span class="s2"># salome doc only works for virtual applications. Therefore we overwrite it with this function</span>
933 <span class="s2">def _showDoc(modules):</span>
934 <span class="s2"> for module in modules:</span>
935 <span class="s2"> modulePath = os.getenv(module+"_ROOT_DIR")</span>
936 <span class="s2"> if modulePath != None:</span>
937 <span class="s2"> baseDir = os.path.join(modulePath, "share", "doc", "salome")</span>
938 <span class="s2"> docfile = os.path.join(baseDir, "gui", module.upper(), "index.html")</span>
939 <span class="s2"> if not os.path.isfile(docfile):</span>
940 <span class="s2"> docfile = os.path.join(baseDir, "tui", module.upper(), "index.html")</span>
941 <span class="s2"> if not os.path.isfile(docfile):</span>
942 <span class="s2"> docfile = os.path.join(baseDir, "dev", module.upper(), "index.html")</span>
943 <span class="s2"> if os.path.isfile(docfile):</span>
944 <span class="s2"> out, err = subprocess.Popen(["xdg-open", docfile]).communicate()</span>
945 <span class="s2"> else:</span>
946 <span class="s2"> print("Online documentation is not accessible for module:", module)</span>
947 <span class="s2"> else:</span>
948 <span class="s2"> print(module+"_ROOT_DIR not found!")</span>
950 <span class="s2">def main(args):</span>
951 <span class="s2"> # Identify application path then locate configuration files</span>
952 <span class="s2"> __initialize()</span>
954 <span class="s2"> if args == ['--help']:</span>
955 <span class="s2"> from salomeContext import usage</span>
956 <span class="s2"> usage()</span>
957 <span class="s2"> sys.exit(0)</span>
959 <span class="s2"> #from salomeContextUtils import getConfigFileNames</span>
960 <span class="s2"> #configFileNames, args, unexisting = getConfigFileNames( args, checkExistence=True )</span>
961 <span class="s2"> #if len(unexisting) > 0:</span>
962 <span class="s2"> # print("ERROR: unexisting configuration file(s): " + ', '.join(unexisting))</span>
963 <span class="s2"> # sys.exit(1)</span>
965 <span class="s2"> # Create a SalomeContext which parses configFileNames to initialize environment</span>
966 <span class="s2"> try:</span>
967 <span class="s2"> from salomeContext import SalomeContext, SalomeContextException</span>
968 <span class="s2"> SalomeContext.addToSpecial=addToSpecial</span>
969 <span class="s2"> context = SalomeContext(None)</span>
970 <span class="s2"> </span>
971 <span class="s2"> # Here set specific variables, if needed</span>
972 <span class="s2"> # context.addToPath('mypath')</span>
973 <span class="s2"> # context.addToLdLibraryPath('myldlibrarypath')</span>
974 <span class="s2"> # context.addToPythonPath('mypythonpath')</span>
975 <span class="s2"> # context.setVariable('myvarname', 'value')</span>
977 <span class="s2"> # Logger level error</span>
978 <span class="s2"> context.getLogger().setLevel(40)</span>
980 <span class="s2"> context.setVariable(r"PRODUCT_ROOT_DIR", out_dir_Path, overwrite=True)</span>
981 <span class="s2"> # here your local standalone environment</span>
983 <span class="s2"> if len(args) >1 and args[0]=='doc':</span>
984 <span class="s2"> _showDoc(args[1:])</span>
985 <span class="s2"> return</span>
987 <span class="s2"> # Start SALOME, parsing command line arguments</span>
988 <span class="s2"> out, err, status = context.runSalome(args)</span>
989 <span class="s2"> sys.exit(status)</span>
991 <span class="s2"> except SalomeContextException as e:</span>
992 <span class="s2"> import logging</span>
993 <span class="s2"> logging.getLogger("salome").error(e)</span>
994 <span class="s2"> sys.exit(1)</span>
995 <span class="s2">#</span>
996 <span class="s2">def addToSpecial(self, name, value, pathSep=None):</span>
997 <span class="s2"> # add special dangerous cases: TCLLIBPATH PV_PLUGIN_PATH etc...</span>
998 <span class="s2"> # http://computer-programming-forum.com/57-tcl/1dfddc136afccb94.htm</span>
999 <span class="s2"> # TCLLIBPATH: Tcl treats the contents of that variable as a list. Be happy, for you can now use drive letters on windows.</span>
1000 <span class="s2"> if value == '':</span>
1001 <span class="s2"> return</span>
1002 <span class="s2"> </span>
1003 <span class="s2"> specialBlanksKeys=["TCLLIBPATH", "TKLIBPATH"]</span>
1004 <span class="s2"> specialSemicolonKeys=["PV_PLUGIN_PATH"]</span>
1005 <span class="s2"> res=os.pathsep</span>
1006 <span class="s2"> if name in specialBlanksKeys: res=" "</span>
1007 <span class="s2"> if name in specialSemicolonKeys: res=";"</span>
1008 <span class="s2"> </span>
1009 <span class="s2"> if pathSep==None:</span>
1010 <span class="s2"> sep=res</span>
1011 <span class="s2"> else:</span>
1012 <span class="s2"> sep=pathSep</span>
1013 <span class="s2"> value = os.path.expandvars(value) # expand environment variables</span>
1014 <span class="s2"> self.getLogger().debug("Add to </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">", name, value)</span>
1015 <span class="s2"> env = os.getenv(name, None)</span>
1016 <span class="s2"> if env is None:</span>
1017 <span class="s2"> os.environ[name] = value</span>
1018 <span class="s2"> else:</span>
1019 <span class="s2"> os.environ[name] = value + sep + env #explicitely or not special path separator ?whitespace, semicolon?</span>
1021 <span class="s2">if __name__ == "__main__":</span>
1022 <span class="s2"> args = sys.argv[1:]</span>
1023 <span class="s2"> main(args)</span>
1024 <span class="s2">#</span>
1025 <span class="s2">"""</span>
1032 <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
1033 <div class="sphinxsidebarwrapper">
1034 <p class="logo"><a href="../../index.html">
1035 <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
1036 </a></p><div class="relations">
1037 <h3>Related Topics</h3>
1039 <li><a href="../../index.html">Documentation overview</a><ul>
1040 <li><a href="../index.html">Module code</a><ul>
1041 <li><a href="../src.html">src</a><ul>
1047 <div id="searchbox" style="display: none" role="search">
1048 <h3>Quick search</h3>
1049 <div class="searchformwrapper">
1050 <form class="search" action="../../search.html" method="get">
1051 <input type="text" name="q" />
1052 <input type="submit" value="Go" />
1053 <input type="hidden" name="check_keywords" value="yes" />
1054 <input type="hidden" name="area" value="default" />
1058 <script type="text/javascript">$('#searchbox').show(0);</script>
1061 <div class="clearer"></div>
1063 <div class="footer">
1067 Powered by <a href="http://sphinx-doc.org/">Sphinx 1.7.3</a>
1068 & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>