gitlabhq/doc/code/classes/Gitlab/Satellite/Satellite.html
2012-12-30 14:43:00 +02:00

506 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Gitlab::Satellite::Satellite</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="../../../css/reset.css" type="text/css" media="screen" />
<link rel="stylesheet" href="../../../css/main.css" type="text/css" media="screen" />
<link rel="stylesheet" href="../../../css/github.css" type="text/css" media="screen" />
<script src="../../../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../../../js/jquery-effect.js" type="text/javascript" charset="utf-8"></script>
<script src="../../../js/main.js" type="text/javascript" charset="utf-8"></script>
<script src="../../../js/highlight.pack.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="banner">
<h1>
<span class="type">Class</span>
Gitlab::Satellite::Satellite
<span class="parent">&lt;
Object
</span>
</h1>
<ul class="files">
<li><a href="../../../files/lib/gitlab/satellite/satellite_rb.html">lib/gitlab/satellite/satellite.rb</a></li>
</ul>
</div>
<div id="bodyContent">
<div id="content">
<!-- Method ref -->
<div class="sectiontitle">Methods</div>
<dl class="methods">
<dt>C</dt>
<dd>
<ul>
<li>
<a href="#method-i-clear_and_update-21">clear_and_update!</a>,
</li>
<li>
<a href="#method-i-create">create</a>
</li>
</ul>
</dd>
<dt>E</dt>
<dd>
<ul>
<li>
<a href="#method-i-exists-3F">exists?</a>
</li>
</ul>
</dd>
<dt>L</dt>
<dd>
<ul>
<li>
<a href="#method-i-lock">lock</a>,
</li>
<li>
<a href="#method-i-lock_file">lock_file</a>
</li>
</ul>
</dd>
<dt>N</dt>
<dd>
<ul>
<li>
<a href="#method-c-new">new</a>
</li>
</ul>
</dd>
<dt>P</dt>
<dd>
<ul>
<li>
<a href="#method-i-path">path</a>
</li>
</ul>
</dd>
<dt>R</dt>
<dd>
<ul>
<li>
<a href="#method-i-repo">repo</a>
</li>
</ul>
</dd>
</dl>
<!-- Section constants -->
<div class="sectiontitle">Constants</div>
<table border='0' cellpadding='5'>
<tr valign='top'>
<td class="attr-name">PARKING_BRANCH</td>
<td>=</td>
<td class="attr-value">&quot;__parking_branch&quot;</td>
</tr>
<tr valign='top'>
<td>&nbsp;</td>
<td colspan="2" class="attr-desc"></td>
</tr>
</table>
<!-- Section attributes -->
<div class="sectiontitle">Attributes</div>
<table border='0' cellpadding='5'>
<tr valign='top'>
<td class='attr-rw'>
[RW]
</td>
<td class='attr-name'>project</td>
<td class='attr-desc'></td>
</tr>
</table>
<!-- Methods -->
<div class="sectiontitle">Class Public methods</div>
<div class="method">
<div class="title method-title" id="method-c-new">
<b>new</b>(project)
<a href="../../../classes/Gitlab/Satellite/Satellite.html#method-c-new" name="method-c-new" class="permalink">Link</a>
</div>
<div class="description">
</div>
<div class="sourcecode">
<p class="source-link">
Source:
<a href="javascript:toggleSource('method-c-new_source')" id="l_method-c-new_source">show</a>
</p>
<div id="method-c-new_source" class="dyn-source">
<pre><span class="ruby-comment"># File lib/gitlab/satellite/satellite.rb, line 8</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">initialize</span>(<span class="ruby-identifier">project</span>)
<span class="ruby-ivar">@project</span> = <span class="ruby-identifier">project</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div class="sectiontitle">Instance Public methods</div>
<div class="method">
<div class="title method-title" id="method-i-clear_and_update-21">
<b>clear_and_update!</b>()
<a href="../../../classes/Gitlab/Satellite/Satellite.html#method-i-clear_and_update-21" name="method-i-clear_and_update-21" class="permalink">Link</a>
</div>
<div class="description">
</div>
<div class="sourcecode">
<p class="source-link">
Source:
<a href="javascript:toggleSource('method-i-clear_and_update-21_source')" id="l_method-i-clear_and_update-21_source">show</a>
</p>
<div id="method-i-clear_and_update-21_source" class="dyn-source">
<pre><span class="ruby-comment"># File lib/gitlab/satellite/satellite.rb, line 12</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">clear_and_update!</span>
<span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;Satellite doesn't exist&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">exists?</span>
<span class="ruby-identifier">delete_heads!</span>
<span class="ruby-identifier">clear_working_dir!</span>
<span class="ruby-identifier">update_from_source!</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div class="method">
<div class="title method-title" id="method-i-create">
<b>create</b>()
<a href="../../../classes/Gitlab/Satellite/Satellite.html#method-i-create" name="method-i-create" class="permalink">Link</a>
</div>
<div class="description">
</div>
<div class="sourcecode">
<p class="source-link">
Source:
<a href="javascript:toggleSource('method-i-create_source')" id="l_method-i-create_source">show</a>
</p>
<div id="method-i-create_source" class="dyn-source">
<pre><span class="ruby-comment"># File lib/gitlab/satellite/satellite.rb, line 20</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">create</span>
<span class="ruby-identifier">create_cmd</span> = <span class="ruby-node">&quot;git clone #{project.url_to_repo} #{path}&quot;</span>
<span class="ruby-keyword">if</span> <span class="ruby-identifier">system</span>(<span class="ruby-identifier">create_cmd</span>)
<span class="ruby-keyword">true</span>
<span class="ruby-keyword">else</span>
<span class="ruby-constant">Gitlab</span><span class="ruby-operator">::</span><span class="ruby-constant">GitLogger</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Failed to create satellite for #{project.name_with_namespace}&quot;</span>)
<span class="ruby-keyword">false</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div class="method">
<div class="title method-title" id="method-i-exists-3F">
<b>exists?</b>()
<a href="../../../classes/Gitlab/Satellite/Satellite.html#method-i-exists-3F" name="method-i-exists-3F" class="permalink">Link</a>
</div>
<div class="description">
</div>
<div class="sourcecode">
<p class="source-link">
Source:
<a href="javascript:toggleSource('method-i-exists-3F_source')" id="l_method-i-exists-3F_source">show</a>
</p>
<div id="method-i-exists-3F_source" class="dyn-source">
<pre><span class="ruby-comment"># File lib/gitlab/satellite/satellite.rb, line 30</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">exists?</span>
<span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span> <span class="ruby-identifier">path</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div class="method">
<div class="title method-title" id="method-i-lock">
<b>lock</b>()
<a href="../../../classes/Gitlab/Satellite/Satellite.html#method-i-lock" name="method-i-lock" class="permalink">Link</a>
</div>
<div class="description">
<ul><li>
<p>Locks the satellite</p>
</li><li>
<p>Changes the current directory to the satellites working dir</p>
</li><li>
<p>Yields</p>
</li></ul>
</div>
<div class="sourcecode">
<p class="source-link">
Source:
<a href="javascript:toggleSource('method-i-lock_source')" id="l_method-i-lock_source">show</a>
</p>
<div id="method-i-lock_source" class="dyn-source">
<pre><span class="ruby-comment"># File lib/gitlab/satellite/satellite.rb, line 37</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">lock</span>
<span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;Satellite doesn't exist&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">exists?</span>
<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">lock_file</span>, <span class="ruby-string">&quot;w+&quot;</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">f</span>.<span class="ruby-identifier">flock</span>(<span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_EX</span>)
<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword">do</span>
<span class="ruby-keyword">return</span> <span class="ruby-keyword">yield</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div class="method">
<div class="title method-title" id="method-i-lock_file">
<b>lock_file</b>()
<a href="../../../classes/Gitlab/Satellite/Satellite.html#method-i-lock_file" name="method-i-lock_file" class="permalink">Link</a>
</div>
<div class="description">
</div>
<div class="sourcecode">
<p class="source-link">
Source:
<a href="javascript:toggleSource('method-i-lock_file_source')" id="l_method-i-lock_file_source">show</a>
</p>
<div id="method-i-lock_file_source" class="dyn-source">
<pre><span class="ruby-comment"># File lib/gitlab/satellite/satellite.rb, line 49</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">lock_file</span>
<span class="ruby-constant">Rails</span>.<span class="ruby-identifier">root</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;tmp&quot;</span>, <span class="ruby-node">&quot;satellite_#{project.id}.lock&quot;</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div class="method">
<div class="title method-title" id="method-i-path">
<b>path</b>()
<a href="../../../classes/Gitlab/Satellite/Satellite.html#method-i-path" name="method-i-path" class="permalink">Link</a>
</div>
<div class="description">
</div>
<div class="sourcecode">
<p class="source-link">
Source:
<a href="javascript:toggleSource('method-i-path_source')" id="l_method-i-path_source">show</a>
</p>
<div id="method-i-path_source" class="dyn-source">
<pre><span class="ruby-comment"># File lib/gitlab/satellite/satellite.rb, line 53</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">path</span>
<span class="ruby-constant">Rails</span>.<span class="ruby-identifier">root</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;tmp&quot;</span>, <span class="ruby-string">&quot;repo_satellites&quot;</span>, <span class="ruby-identifier">project</span>.<span class="ruby-identifier">path_with_namespace</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
<div class="method">
<div class="title method-title" id="method-i-repo">
<b>repo</b>()
<a href="../../../classes/Gitlab/Satellite/Satellite.html#method-i-repo" name="method-i-repo" class="permalink">Link</a>
</div>
<div class="description">
</div>
<div class="sourcecode">
<p class="source-link">
Source:
<a href="javascript:toggleSource('method-i-repo_source')" id="l_method-i-repo_source">show</a>
</p>
<div id="method-i-repo_source" class="dyn-source">
<pre><span class="ruby-comment"># File lib/gitlab/satellite/satellite.rb, line 57</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">repo</span>
<span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;Satellite doesn't exist&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">exists?</span>
<span class="ruby-ivar">@repo</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">Grit</span><span class="ruby-operator">::</span><span class="ruby-constant">Repo</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>)
<span class="ruby-keyword">end</span></pre>
</div>
</div>
</div>
</div>
</div>
</body>
</html>