1 <?xml version="1.0" encoding="iso-8859-1"?>
3 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
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">
15 function popupCode( url ) {
16 window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
19 function toggleCode( id ) {
20 if ( document.getElementById )
21 elem = document.getElementById( id );
22 else if ( document.all )
23 elem = eval( "document.all." + id );
27 elemStyle = elem.style;
29 if ( elemStyle.display != "block" ) {
30 elemStyle.display = "block"
32 elemStyle.display = "none"
38 // Make codeblocks hidden by default
39 document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
51 <table class="header-table">
52 <tr class="top-aligned-row">
53 <td><strong>Path:</strong></td>
57 <tr class="top-aligned-row">
58 <td><strong>Last Update:</strong></td>
59 <td>Fri Nov 08 12:57:19 +0000 2013</td>
63 <!-- banner header -->
65 <div id="bodyContent">
69 <div id="contextContent">
72 <div id="requires-list">
73 <h3 class="section-bar">Required files</h3>
75 <div class="name-list">
88 <div id="method-list">
89 <h3 class="section-bar">Methods</h3>
91 <div class="name-list">
92 <a href="#M000007">build_rdoc</a>
93 <a href="#M000002">check_prereqs</a>
94 <a href="#M000004">do_bins</a>
95 <a href="#M000003">do_configs</a>
96 <a href="#M000005">do_libs</a>
97 <a href="#M000001">glob</a>
98 <a href="#M000008">install_binfile</a>
99 <a href="#M000006">prepare_installation</a>
108 <h3 class="section-bar">Included Modules</h3>
110 <div id="includes-list">
111 <span class="include-name">FileUtils</span>
118 <div id="constants-list">
119 <h3 class="section-bar">Constants</h3>
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>
126 <td class="context-item-value">%w{rubygems stomp}</td>
128 <tr class="top-aligned-row context-row">
129 <td class="context-item-name">InstallOptions</td>
131 <td class="context-item-value">OpenStruct.new</td>
142 <!-- if method_list -->
144 <h3 class="section-bar">Public Instance methods</h3>
146 <div id="method-M000007" class="method-detail">
147 <a name="M000007"></a>
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>
155 <div class="method-description">
157 Build the rdoc documentation.
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">
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">"--main"</span>, <span class="ruby-value str">"MCollective"</span>, <span class="ruby-value str">"--line-numbers"</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">></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">></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">"Couldn't build RDoc documentation\n#{e.message}"</span>
173 255: <span class="ruby-keyword kw">end</span>
174 256: <span class="ruby-keyword kw">end</span>
180 <div id="method-M000002" class="method-detail">
181 <a name="M000002"></a>
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>
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">
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">"Could not load #{pre} Ruby library; cannot install"</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>
210 <div id="method-M000004" class="method-detail">
211 <a name="M000004"></a>
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>
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">
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>
237 <div id="method-M000003" class="method-detail">
238 <a name="M000003"></a>
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>
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">
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">></span> <span class="ruby-value">0755</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">></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">></span> <span class="ruby-value">0644</span>, <span class="ruby-identifier">:preserve</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">></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>
266 <div id="method-M000005" class="method-detail">
267 <a name="M000005"></a>
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>
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">
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">></span> <span class="ruby-value">0755</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">></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">></span> <span class="ruby-value">0755</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">></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">></span> <span class="ruby-value">0644</span>, <span class="ruby-identifier">:preserve</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">></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>
298 <div id="method-M000001" class="method-detail">
299 <a name="M000001"></a>
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>
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">
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>
325 <div id="method-M000008" class="method-detail">
326 <a name="M000008"></a>
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>
334 <div class="method-description">
336 Install file(s) from ./bin to RbConfig::CONFIG[‘bindir’]. Patch
337 it on the way to insert a #! line; on a Unix install, the command is named
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">
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>)
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>
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">"w"</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">"#!#{ruby}"</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>
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">></span> <span class="ruby-value">0755</span>, <span class="ruby-identifier">:preserve</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">></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>
371 <div id="method-M000006" class="method-detail">
372 <a name="M000006"></a>
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>
380 <div class="method-description">
382 Prepare the file installation.
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">
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>
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>
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">"Usage: #{File.basename($0)} [options]"</span>
402 123: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">""</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["bindir"]'</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["sbindir"]'</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["sitelibdir"]'</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">""</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">"Shows this help text."</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>
446 167: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse!</span>
447 168: <span class="ruby-keyword kw">end</span>
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">"MAJOR"</span>], <span class="ruby-constant">RbConfig</span><span class="ruby-operator">::</span><span class="ruby-constant">CONFIG</span>[<span class="ruby-value str">"MINOR"</span>]].<span class="ruby-identifier">join</span>(<span class="ruby-value str">"."</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">"libdir"</span>], <span class="ruby-value str">"ruby"</span>, <span class="ruby-identifier">version</span>)
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">"/usr/bin"</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">"/usr/sbin"</span>
459 180: <span class="ruby-keyword kw">end</span>
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">"/etc/mcollective"</span>
465 186: <span class="ruby-keyword kw">end</span>
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>
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>
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">"sitelibdir"</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">"site_ruby"</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>
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">"/usr/libexec/mcollective"</span>
497 218: <span class="ruby-keyword kw">end</span>
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>
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>)
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>)
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>
533 <div id="validator-badges">
534 <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>