Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / files / install_rb.html
1 <?xml version="1.0" encoding="iso-8859-1"?>
2 <!DOCTYPE html 
3      PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7 <head>
8   <title>File: install.rb</title>
9   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10   <meta http-equiv="Content-Script-Type" content="text/javascript" />
11   <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12   <script type="text/javascript">
13   // <![CDATA[
14
15   function popupCode( url ) {
16     window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17   }
18
19   function toggleCode( id ) {
20     if ( document.getElementById )
21       elem = document.getElementById( id );
22     else if ( document.all )
23       elem = eval( "document.all." + id );
24     else
25       return false;
26
27     elemStyle = elem.style;
28     
29     if ( elemStyle.display != "block" ) {
30       elemStyle.display = "block"
31     } else {
32       elemStyle.display = "none"
33     }
34
35     return true;
36   }
37   
38   // Make codeblocks hidden by default
39   document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40   
41   // ]]>
42   </script>
43
44 </head>
45 <body>
46
47
48
49   <div id="fileHeader">
50     <h1>install.rb</h1>
51     <table class="header-table">
52     <tr class="top-aligned-row">
53       <td><strong>Path:</strong></td>
54       <td>install.rb
55       </td>
56     </tr>
57     <tr class="top-aligned-row">
58       <td><strong>Last Update:</strong></td>
59       <td>Fri Nov 08 12:57:19 +0000 2013</td>
60     </tr>
61     </table>
62   </div>
63   <!-- banner header -->
64
65   <div id="bodyContent">
66
67
68
69   <div id="contextContent">
70
71
72     <div id="requires-list">
73       <h3 class="section-bar">Required files</h3>
74
75       <div class="name-list">
76       rbconfig&nbsp;&nbsp;
77       find&nbsp;&nbsp;
78       fileutils&nbsp;&nbsp;
79       tempfile&nbsp;&nbsp;
80       optparse&nbsp;&nbsp;
81       ostruct&nbsp;&nbsp;
82       rdoc/rdoc&nbsp;&nbsp;
83       </div>
84     </div>
85
86    </div>
87
88     <div id="method-list">
89       <h3 class="section-bar">Methods</h3>
90
91       <div class="name-list">
92       <a href="#M000007">build_rdoc</a>&nbsp;&nbsp;
93       <a href="#M000002">check_prereqs</a>&nbsp;&nbsp;
94       <a href="#M000004">do_bins</a>&nbsp;&nbsp;
95       <a href="#M000003">do_configs</a>&nbsp;&nbsp;
96       <a href="#M000005">do_libs</a>&nbsp;&nbsp;
97       <a href="#M000001">glob</a>&nbsp;&nbsp;
98       <a href="#M000008">install_binfile</a>&nbsp;&nbsp;
99       <a href="#M000006">prepare_installation</a>&nbsp;&nbsp;
100       </div>
101     </div>
102
103   </div>
104
105
106     <!-- if includes -->
107     <div id="includes">
108       <h3 class="section-bar">Included Modules</h3>
109
110       <div id="includes-list">
111         <span class="include-name">FileUtils</span>
112       </div>
113     </div>
114
115     <div id="section">
116
117
118     <div id="constants-list">
119       <h3 class="section-bar">Constants</h3>
120
121       <div class="name-list">
122         <table summary="Constants">
123         <tr class="top-aligned-row context-row">
124           <td class="context-item-name">PREREQS</td>
125           <td>=</td>
126           <td class="context-item-value">%w{rubygems stomp}</td>
127         </tr>
128         <tr class="top-aligned-row context-row">
129           <td class="context-item-name">InstallOptions</td>
130           <td>=</td>
131           <td class="context-item-value">OpenStruct.new</td>
132         </tr>
133         </table>
134       </div>
135     </div>
136
137
138
139       
140
141
142     <!-- if method_list -->
143     <div id="methods">
144       <h3 class="section-bar">Public Instance methods</h3>
145
146       <div id="method-M000007" class="method-detail">
147         <a name="M000007"></a>
148
149         <div class="method-heading">
150           <a href="#M000007" class="method-signature">
151           <span class="method-name">build_rdoc</span><span class="method-args">(files)</span>
152           </a>
153         </div>
154       
155         <div class="method-description">
156           <p>
157 Build the rdoc documentation.
158 </p>
159           <p><a class="source-toggle" href="#"
160             onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
161           <div class="method-source-code" id="M000007-source">
162 <pre>
163      <span class="ruby-comment cmt"># File install.rb, line 246</span>
164 246: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">build_rdoc</span>(<span class="ruby-identifier">files</span>)
165 247:   <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">$haverdoc</span>
166 248:   <span class="ruby-keyword kw">begin</span>
167 249:     <span class="ruby-identifier">r</span> = <span class="ruby-constant">RDoc</span><span class="ruby-operator">::</span><span class="ruby-constant">RDoc</span>.<span class="ruby-identifier">new</span>
168 250:     <span class="ruby-identifier">r</span>.<span class="ruby-identifier">document</span>([<span class="ruby-value str">&quot;--main&quot;</span>, <span class="ruby-value str">&quot;MCollective&quot;</span>, <span class="ruby-value str">&quot;--line-numbers&quot;</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">files</span>)
169 251:   <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">RDoc</span><span class="ruby-operator">::</span><span class="ruby-constant">RDocError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
170 252:     <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
171 253:   <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
172 254:     <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Couldn't build RDoc documentation\n#{e.message}&quot;</span>
173 255:   <span class="ruby-keyword kw">end</span>
174 256: <span class="ruby-keyword kw">end</span>
175 </pre>
176           </div>
177         </div>
178       </div>
179
180       <div id="method-M000002" class="method-detail">
181         <a name="M000002"></a>
182
183         <div class="method-heading">
184           <a href="#M000002" class="method-signature">
185           <span class="method-name">check_prereqs</span><span class="method-args">()</span>
186           </a>
187         </div>
188       
189         <div class="method-description">
190           <p><a class="source-toggle" href="#"
191             onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
192           <div class="method-source-code" id="M000002-source">
193 <pre>
194     <span class="ruby-comment cmt"># File install.rb, line 65</span>
195 65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_prereqs</span>
196 66:   <span class="ruby-constant">PREREQS</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pre</span><span class="ruby-operator">|</span>
197 67:     <span class="ruby-keyword kw">begin</span>
198 68:       <span class="ruby-identifier">require</span> <span class="ruby-identifier">pre</span>
199 69:     <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">LoadError</span>
200 70:       <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Could not load #{pre} Ruby library; cannot install&quot;</span>
201 71:       <span class="ruby-identifier">exit</span>(<span class="ruby-value">-1</span>)
202 72:     <span class="ruby-keyword kw">end</span>
203 73:   <span class="ruby-keyword kw">end</span>
204 74: <span class="ruby-keyword kw">end</span>
205 </pre>
206           </div>
207         </div>
208       </div>
209
210       <div id="method-M000004" class="method-detail">
211         <a name="M000004"></a>
212
213         <div class="method-heading">
214           <a href="#M000004" class="method-signature">
215           <span class="method-name">do_bins</span><span class="method-args">(bins, target, strip = 's?bin/')</span>
216           </a>
217         </div>
218       
219         <div class="method-description">
220           <p><a class="source-toggle" href="#"
221             onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
222           <div class="method-source-code" id="M000004-source">
223 <pre>
224     <span class="ruby-comment cmt"># File install.rb, line 86</span>
225 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_bins</span>(<span class="ruby-identifier">bins</span>, <span class="ruby-identifier">target</span>, <span class="ruby-identifier">strip</span> = <span class="ruby-value str">'s?bin/'</span>)
226 87:   <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-identifier">target</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-identifier">target</span>
227 88:   <span class="ruby-identifier">bins</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bf</span><span class="ruby-operator">|</span>
228 89:     <span class="ruby-identifier">obf</span> = <span class="ruby-identifier">bf</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-node">/#{strip}/</span>, <span class="ruby-value str">''</span>)
229 90:     <span class="ruby-identifier">install_binfile</span>(<span class="ruby-identifier">bf</span>, <span class="ruby-identifier">obf</span>, <span class="ruby-identifier">target</span>)
230 91:   <span class="ruby-keyword kw">end</span>
231 92: <span class="ruby-keyword kw">end</span>
232 </pre>
233           </div>
234         </div>
235       </div>
236
237       <div id="method-M000003" class="method-detail">
238         <a name="M000003"></a>
239
240         <div class="method-heading">
241           <a href="#M000003" class="method-signature">
242           <span class="method-name">do_configs</span><span class="method-args">(configs, target, strip = 'etc/')</span>
243           </a>
244         </div>
245       
246         <div class="method-description">
247           <p><a class="source-toggle" href="#"
248             onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
249           <div class="method-source-code" id="M000003-source">
250 <pre>
251     <span class="ruby-comment cmt"># File install.rb, line 76</span>
252 76: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_configs</span>(<span class="ruby-identifier">configs</span>, <span class="ruby-identifier">target</span>, <span class="ruby-identifier">strip</span> = <span class="ruby-value str">'etc/'</span>)
253 77:   <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-identifier">target</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-identifier">target</span>
254 78:   <span class="ruby-identifier">configs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cf</span><span class="ruby-operator">|</span>
255 79:     <span class="ruby-identifier">ocf</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">target</span>, <span class="ruby-identifier">cf</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">strip</span>), <span class="ruby-value str">''</span>))
256 80:     <span class="ruby-identifier">oc</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">ocf</span>)
257 81:     <span class="ruby-identifier">makedirs</span>(<span class="ruby-identifier">oc</span>, {<span class="ruby-identifier">:mode</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0755</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>})
258 82:     <span class="ruby-identifier">install</span>(<span class="ruby-identifier">cf</span>, <span class="ruby-identifier">ocf</span>, {<span class="ruby-identifier">:mode</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0644</span>, <span class="ruby-identifier">:preserve</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>})
259 83:   <span class="ruby-keyword kw">end</span>
260 84: <span class="ruby-keyword kw">end</span>
261 </pre>
262           </div>
263         </div>
264       </div>
265
266       <div id="method-M000005" class="method-detail">
267         <a name="M000005"></a>
268
269         <div class="method-heading">
270           <a href="#M000005" class="method-signature">
271           <span class="method-name">do_libs</span><span class="method-args">(libs, target, strip = 'lib/')</span>
272           </a>
273         </div>
274       
275         <div class="method-description">
276           <p><a class="source-toggle" href="#"
277             onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
278           <div class="method-source-code" id="M000005-source">
279 <pre>
280      <span class="ruby-comment cmt"># File install.rb, line 94</span>
281  94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_libs</span>(<span class="ruby-identifier">libs</span>, <span class="ruby-identifier">target</span>, <span class="ruby-identifier">strip</span> = <span class="ruby-value str">'lib/'</span>)
282  95:   <span class="ruby-identifier">libs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lf</span><span class="ruby-operator">|</span>
283  96:     <span class="ruby-identifier">olf</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">target</span>, <span class="ruby-identifier">lf</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-node">/^#{strip}/</span>, <span class="ruby-value str">''</span>))
284  97:     <span class="ruby-identifier">op</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">olf</span>)
285  98:     <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">lf</span>)
286  99:       <span class="ruby-identifier">makedirs</span>(<span class="ruby-identifier">olf</span>, {<span class="ruby-identifier">:mode</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0755</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>})
287 100:     <span class="ruby-keyword kw">else</span>
288 101:       <span class="ruby-identifier">makedirs</span>(<span class="ruby-identifier">op</span>, {<span class="ruby-identifier">:mode</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0755</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>})
289 102:       <span class="ruby-identifier">install</span>(<span class="ruby-identifier">lf</span>, <span class="ruby-identifier">olf</span>, {<span class="ruby-identifier">:mode</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0644</span>, <span class="ruby-identifier">:preserve</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>})
290 103:     <span class="ruby-keyword kw">end</span>
291 104:   <span class="ruby-keyword kw">end</span>
292 105: <span class="ruby-keyword kw">end</span>
293 </pre>
294           </div>
295         </div>
296       </div>
297
298       <div id="method-M000001" class="method-detail">
299         <a name="M000001"></a>
300
301         <div class="method-heading">
302           <a href="#M000001" class="method-signature">
303           <span class="method-name">glob</span><span class="method-args">(list)</span>
304           </a>
305         </div>
306       
307         <div class="method-description">
308           <p><a class="source-toggle" href="#"
309             onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
310           <div class="method-source-code" id="M000001-source">
311 <pre>
312     <span class="ruby-comment cmt"># File install.rb, line 57</span>
313 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">glob</span>(<span class="ruby-identifier">list</span>)
314 58:   <span class="ruby-identifier">g</span> = <span class="ruby-identifier">list</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-identifier">i</span>) }
315 59:   <span class="ruby-identifier">g</span>.<span class="ruby-identifier">flatten!</span>
316 60:   <span class="ruby-identifier">g</span>.<span class="ruby-identifier">compact!</span>
317 61:   <span class="ruby-identifier">g</span>.<span class="ruby-identifier">uniq!</span>
318 62:   <span class="ruby-identifier">g</span>
319 63: <span class="ruby-keyword kw">end</span>
320 </pre>
321           </div>
322         </div>
323       </div>
324
325       <div id="method-M000008" class="method-detail">
326         <a name="M000008"></a>
327
328         <div class="method-heading">
329           <a href="#M000008" class="method-signature">
330           <span class="method-name">install_binfile</span><span class="method-args">(from, op_file, target)</span>
331           </a>
332         </div>
333       
334         <div class="method-description">
335           <p>
336 Install file(s) from ./bin to RbConfig::CONFIG[&#8216;bindir&#8217;]. Patch
337 it on the way to insert a #! line; on a Unix install, the command is named
338 as expected
339 </p>
340           <p><a class="source-toggle" href="#"
341             onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
342           <div class="method-source-code" id="M000008-source">
343 <pre>
344      <span class="ruby-comment cmt"># File install.rb, line 261</span>
345 261: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">install_binfile</span>(<span class="ruby-identifier">from</span>, <span class="ruby-identifier">op_file</span>, <span class="ruby-identifier">target</span>)
346 262:   <span class="ruby-identifier">tmp_file</span> = <span class="ruby-constant">Tempfile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'mcollective-binfile'</span>)
347 263: 
348 264:   <span class="ruby-keyword kw">if</span> <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">ruby</span>
349 265:     <span class="ruby-identifier">ruby</span> = <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">ruby</span>
350 266:   <span class="ruby-keyword kw">else</span>
351 267:     <span class="ruby-identifier">ruby</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">'bindir'</span>], <span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">'ruby_install_name'</span>])
352 268:   <span class="ruby-keyword kw">end</span>
353 269: 
354 270:   <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">from</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ip</span><span class="ruby-operator">|</span>
355 271:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">tmp_file</span>.<span class="ruby-identifier">path</span>, <span class="ruby-value str">&quot;w&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span><span class="ruby-operator">|</span>
356 272:       <span class="ruby-identifier">op</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#!#{ruby}&quot;</span>
357 273:       <span class="ruby-identifier">contents</span> = <span class="ruby-identifier">ip</span>.<span class="ruby-identifier">readlines</span>
358 274:       <span class="ruby-identifier">contents</span>.<span class="ruby-identifier">shift</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">contents</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^#!/</span>
359 275:       <span class="ruby-identifier">op</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">contents</span>.<span class="ruby-identifier">join</span>
360 276:     <span class="ruby-keyword kw">end</span>
361 277:   <span class="ruby-keyword kw">end</span>
362 278: 
363 279:   <span class="ruby-identifier">install</span>(<span class="ruby-identifier">tmp_file</span>.<span class="ruby-identifier">path</span>, <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">target</span>, <span class="ruby-identifier">op_file</span>), <span class="ruby-identifier">:mode</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0755</span>, <span class="ruby-identifier">:preserve</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>)
364 280:   <span class="ruby-identifier">tmp_file</span>.<span class="ruby-identifier">unlink</span>
365 281: <span class="ruby-keyword kw">end</span>
366 </pre>
367           </div>
368         </div>
369       </div>
370
371       <div id="method-M000006" class="method-detail">
372         <a name="M000006"></a>
373
374         <div class="method-heading">
375           <a href="#M000006" class="method-signature">
376           <span class="method-name">prepare_installation</span><span class="method-args">()</span>
377           </a>
378         </div>
379       
380         <div class="method-description">
381           <p>
382 Prepare the file installation.
383 </p>
384           <p><a class="source-toggle" href="#"
385             onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
386           <div class="method-source-code" id="M000006-source">
387 <pre>
388      <span class="ruby-comment cmt"># File install.rb, line 110</span>
389 110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prepare_installation</span>
390 111:   <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">configs</span> = <span class="ruby-keyword kw">true</span>
391 112: 
392 113:   <span class="ruby-comment cmt"># Only try to do docs if we're sure they have rdoc</span>
393 114:   <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$haverdoc</span>
394 115:     <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">rdoc</span> = <span class="ruby-keyword kw">true</span>
395 116:   <span class="ruby-keyword kw">else</span>
396 117:     <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">rdoc</span> = <span class="ruby-keyword kw">false</span>
397 118:   <span class="ruby-keyword kw">end</span>
398 119: 
399 120: 
400 121:   <span class="ruby-constant">ARGV</span>.<span class="ruby-identifier">options</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">opts</span><span class="ruby-operator">|</span>
401 122:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">&quot;Usage: #{File.basename($0)} [options]&quot;</span>
402 123:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">&quot;&quot;</span>
403 124:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--[no-]rdoc'</span>, <span class="ruby-value str">'Creation of RDoc output.'</span>, <span class="ruby-value str">'Default is create rdoc.'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">onrdoc</span><span class="ruby-operator">|</span>
404 125:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">rdoc</span> = <span class="ruby-identifier">onrdoc</span>
405 126:     <span class="ruby-keyword kw">end</span>
406 127:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--[no-]configs'</span>, <span class="ruby-value str">'Installation of config files'</span>, <span class="ruby-value str">'Default is install configs.'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">onconfigs</span><span class="ruby-operator">|</span>
407 128:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">configs</span> = <span class="ruby-identifier">onconfigs</span>
408 129:     <span class="ruby-keyword kw">end</span>
409 130:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--destdir[=OPTIONAL]'</span>, <span class="ruby-value str">'Installation prefix for all targets'</span>, <span class="ruby-value str">'Default essentially /'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">destdir</span><span class="ruby-operator">|</span>
410 131:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">destdir</span> = <span class="ruby-identifier">destdir</span>
411 132:     <span class="ruby-keyword kw">end</span>
412 133:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--configdir[=OPTIONAL]'</span>, <span class="ruby-value str">'Installation directory for config files'</span>, <span class="ruby-value str">'Default /etc/mcollective'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">configdir</span><span class="ruby-operator">|</span>
413 134:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">configdir</span> = <span class="ruby-identifier">configdir</span>
414 135:     <span class="ruby-keyword kw">end</span>
415 136:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--bindir[=OPTIONAL]'</span>, <span class="ruby-value str">'Installation directory for binaries'</span>, <span class="ruby-value str">'overrides RbConfig::CONFIG[&quot;bindir&quot;]'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bindir</span><span class="ruby-operator">|</span>
416 137:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">bindir</span> = <span class="ruby-identifier">bindir</span>
417 138:     <span class="ruby-keyword kw">end</span>
418 139:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--sbindir[=OPTIONAL]'</span>, <span class="ruby-value str">'Installation directory for system binaries'</span>, <span class="ruby-value str">'overrides RbConfig::CONFIG[&quot;sbindir&quot;]'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sbindir</span><span class="ruby-operator">|</span>
419 140:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">sbindir</span> = <span class="ruby-identifier">sbindir</span>
420 141:     <span class="ruby-keyword kw">end</span>
421 142:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--ruby[=OPTIONAL]'</span>, <span class="ruby-value str">'Ruby interpreter to use with installation'</span>, <span class="ruby-value str">'overrides ruby used to call install.rb'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ruby</span><span class="ruby-operator">|</span>
422 143:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">ruby</span> = <span class="ruby-identifier">ruby</span>
423 144:     <span class="ruby-keyword kw">end</span>
424 145:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--sitelibdir[=OPTIONAL]'</span>, <span class="ruby-value str">'Installation directory for libraries'</span>, <span class="ruby-value str">'overrides RbConfig::CONFIG[&quot;sitelibdir&quot;]'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sitelibdir</span><span class="ruby-operator">|</span>
425 146:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">sitelibdir</span> = <span class="ruby-identifier">sitelibdir</span>
426 147:     <span class="ruby-keyword kw">end</span>
427 148:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--plugindir[=OPTIONAL]'</span>, <span class="ruby-value str">'Installation directory for plugins'</span>, <span class="ruby-value str">'Default /usr/libexec/mcollective'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">plugindir</span><span class="ruby-operator">|</span>
428 149:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">plugindir</span> = <span class="ruby-identifier">plugindir</span>
429 150:     <span class="ruby-keyword kw">end</span>
430 151:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--quick'</span>, <span class="ruby-value str">'Performs a quick installation. Only the'</span>, <span class="ruby-value str">'installation is done.'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">quick</span><span class="ruby-operator">|</span>
431 152:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">rdoc</span>    = <span class="ruby-keyword kw">false</span>
432 153:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">ri</span>      = <span class="ruby-keyword kw">false</span>
433 154:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">configs</span> = <span class="ruby-keyword kw">true</span>
434 155:     <span class="ruby-keyword kw">end</span>
435 156:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'--full'</span>, <span class="ruby-value str">'Performs a full installation. All'</span>, <span class="ruby-value str">'optional installation steps are run.'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">full</span><span class="ruby-operator">|</span>
436 157:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">rdoc</span>    = <span class="ruby-keyword kw">true</span>
437 158:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">ri</span>      = <span class="ruby-keyword kw">true</span>
438 159:       <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">configs</span> = <span class="ruby-keyword kw">true</span>
439 160:     <span class="ruby-keyword kw">end</span>
440 161:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span>(<span class="ruby-value str">&quot;&quot;</span>)
441 162:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on_tail</span>(<span class="ruby-value str">'--help'</span>, <span class="ruby-value str">&quot;Shows this help text.&quot;</span>) <span class="ruby-keyword kw">do</span>
442 163:       <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>
443 164:       <span class="ruby-identifier">exit</span>
444 165:     <span class="ruby-keyword kw">end</span>
445 166: 
446 167:     <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse!</span>
447 168:   <span class="ruby-keyword kw">end</span>
448 169: 
449 170:   <span class="ruby-identifier">version</span> = [<span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">&quot;MAJOR&quot;</span>], <span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">&quot;MINOR&quot;</span>]].<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;.&quot;</span>)
450 171:   <span class="ruby-identifier">libdir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">&quot;libdir&quot;</span>], <span class="ruby-value str">&quot;ruby&quot;</span>, <span class="ruby-identifier">version</span>)
451 172: 
452 173:   <span class="ruby-comment cmt"># Mac OS X 10.5 and higher declare bindir</span>
453 174:   <span class="ruby-comment cmt"># /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin</span>
454 175:   <span class="ruby-comment cmt"># which is not generally where people expect executables to be installed</span>
455 176:   <span class="ruby-comment cmt"># These settings are appropriate defaults for all OS X versions.</span>
456 177:   <span class="ruby-keyword kw">if</span> <span class="ruby-constant">RUBY_PLATFORM</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^universal-darwin[\d\.]+$/</span>
457 178:     <span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">'bindir'</span>] = <span class="ruby-value str">&quot;/usr/bin&quot;</span>
458 179:     <span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">'sbindir'</span>] = <span class="ruby-value str">&quot;/usr/sbin&quot;</span>
459 180:   <span class="ruby-keyword kw">end</span>
460 181: 
461 182:   <span class="ruby-keyword kw">if</span> <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">configdir</span>
462 183:     <span class="ruby-identifier">configdir</span> = <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">configdir</span>
463 184:   <span class="ruby-keyword kw">else</span>
464 185:     <span class="ruby-identifier">configdir</span> = <span class="ruby-value str">&quot;/etc/mcollective&quot;</span>
465 186:   <span class="ruby-keyword kw">end</span>
466 187: 
467 188:   <span class="ruby-keyword kw">if</span> <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">bindir</span>
468 189:     <span class="ruby-identifier">bindir</span> = <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">bindir</span>
469 190:   <span class="ruby-keyword kw">else</span>
470 191:     <span class="ruby-identifier">bindir</span> = <span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">'bindir'</span>]
471 192:   <span class="ruby-keyword kw">end</span>
472 193: 
473 194:   <span class="ruby-keyword kw">if</span> <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">sbindir</span>
474 195:     <span class="ruby-identifier">sbindir</span> = <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">sbindir</span>
475 196:   <span class="ruby-keyword kw">else</span>
476 197:     <span class="ruby-identifier">sbindir</span> = <span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">'sbindir'</span>]
477 198:   <span class="ruby-keyword kw">end</span>
478 199: 
479 200:   <span class="ruby-keyword kw">if</span> <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">sitelibdir</span>
480 201:     <span class="ruby-identifier">sitelibdir</span> = <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">sitelibdir</span>
481 202:   <span class="ruby-keyword kw">else</span>
482 203:     <span class="ruby-identifier">sitelibdir</span> = <span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">&quot;sitelibdir&quot;</span>]
483 204:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sitelibdir</span>.<span class="ruby-identifier">nil?</span>
484 205:       <span class="ruby-identifier">sitelibdir</span> = <span class="ruby-identifier">$LOAD_PATH</span>.<span class="ruby-identifier">find</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/site_ruby/</span> }
485 206:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sitelibdir</span>.<span class="ruby-identifier">nil?</span>
486 207:         <span class="ruby-identifier">sitelibdir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">libdir</span>, <span class="ruby-value str">&quot;site_ruby&quot;</span>)
487 208:       <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">sitelibdir</span> <span class="ruby-operator">!~</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">quote</span>(<span class="ruby-identifier">version</span>)
488 209:         <span class="ruby-identifier">sitelibdir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">sitelibdir</span>, <span class="ruby-identifier">version</span>)
489 210:       <span class="ruby-keyword kw">end</span>
490 211:     <span class="ruby-keyword kw">end</span>
491 212:   <span class="ruby-keyword kw">end</span>
492 213: 
493 214:   <span class="ruby-keyword kw">if</span> <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">plugindir</span>
494 215:     <span class="ruby-identifier">plugindir</span> = <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">plugindir</span>
495 216:   <span class="ruby-keyword kw">else</span>
496 217:     <span class="ruby-identifier">plugindir</span> = <span class="ruby-value str">&quot;/usr/libexec/mcollective&quot;</span>
497 218:   <span class="ruby-keyword kw">end</span>
498 219: 
499 220:   <span class="ruby-keyword kw">if</span> <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">destdir</span>
500 221:     <span class="ruby-identifier">destdir</span> = <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">destdir</span>
501 222:   <span class="ruby-keyword kw">else</span>
502 223:     <span class="ruby-identifier">destdir</span> = <span class="ruby-value str">''</span>
503 224:   <span class="ruby-keyword kw">end</span>
504 225: 
505 226:   <span class="ruby-identifier">configdir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">destdir</span>, <span class="ruby-identifier">configdir</span>)
506 227:   <span class="ruby-identifier">bindir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">destdir</span>, <span class="ruby-identifier">bindir</span>)
507 228:   <span class="ruby-identifier">sitelibdir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">destdir</span>, <span class="ruby-identifier">sitelibdir</span>)
508 229: 
509 230:   <span class="ruby-identifier">makedirs</span>(<span class="ruby-identifier">configdir</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">configs</span>
510 231:   <span class="ruby-identifier">makedirs</span>(<span class="ruby-identifier">bindir</span>)
511 232:   <span class="ruby-identifier">makedirs</span>(<span class="ruby-identifier">sbindir</span>)
512 233:   <span class="ruby-identifier">makedirs</span>(<span class="ruby-identifier">sitelibdir</span>)
513 234:   <span class="ruby-identifier">makedirs</span>(<span class="ruby-identifier">plugindir</span>)
514 235: 
515 236:   <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">sitelibdir</span> = <span class="ruby-identifier">sitelibdir</span>
516 237:   <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">configdir</span> = <span class="ruby-identifier">configdir</span>
517 238:   <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">bindir</span>  = <span class="ruby-identifier">bindir</span>
518 239:   <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">sbindir</span>  = <span class="ruby-identifier">sbindir</span>
519 240:   <span class="ruby-constant">InstallOptions</span>.<span class="ruby-identifier">plugindir</span>  = <span class="ruby-identifier">plugindir</span>
520 241: <span class="ruby-keyword kw">end</span>
521 </pre>
522           </div>
523         </div>
524       </div>
525
526
527     </div>
528
529
530   </div>
531
532
533 <div id="validator-badges">
534   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
535 </div>
536
537 </body>
538 </html>