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