arcanis.me/projects/git-etc.html
2014-07-30 09:57:12 +04:00

186 lines
6.7 KiB
HTML

---
hasTr: true
layout: project
title: git-etc
short: git-etc
hasgui: true
developers:
- Evgeniy Alelseev
license: GPLv3
links:
- Archlinux <a href="https://aur.archlinux.org/packages/git-etc">AUR package</a>
---
<!-- info block -->
<h2><a href="#info" class="anchor" name="info"><span class="octicon octicon-link"></span></a>Information</h2>
<p>Simple daemon that automatically creates git repository in the given directory and creates commit at the specified time interval.</p>
{% highlight bash %}
$ git-etc --help
Simple daemon written on BASH for monitoring changes in files
Usage: git-etc [ -c | --config /etc/git-etc.conf ] [ -h | --help ] [ -v | --version ]
Parametrs:
-c --config - path to configuration file
-h --help - show this help and exit
-v --version - show version and exit
See "man 1 git-etc" for more details
{% endhighlight %}
{% highlight bash %}
$ ctrlconf --help
GUI for git-etc daemon
Usage: ctrlconf [ --default ] [ -h | --help ] [ -v | --version ]
Additional parametrs:
--default - create default configuration file
-h --help - show this help and exit
-v --version - show version and exit
See "man 1 ctrlconf" for more details
{% endhighlight %}
<h3><a href="#devel" class="anchor" name="devel"><span class="octicon octicon-link"></span></a>Developers and contributors</h3>
<ul>
{% for devel in page.developers %}
<li>{{ devel }}</li>
{% endfor %}
</ul>
<h3><a href="#license" class="anchor" name="license"><span class="octicon octicon-link"></span></a>License</h3>
<ul>
<li>{{ page.license }}</li>
</ul>
<!-- end of info block -->
<!-- install block -->
<h2><a href="#install" class="anchor" name="install"><span class="octicon octicon-link"></span></a>Installation</h2>
<h3><a href="#instruction" class="anchor" name="instruction"><span class="octicon octicon-link"></span></a>Instruction</h3>
<ul>
<li><p>Download an <a href="https://github.com/arcan1s/git-etc/releases" title="GitHub">archive</a> with latest version of source files.</p></li>
<li><p>Extract it and install the application:</p>
{% highlight bash %}
./install.sh "/path/to/root"
{% endhighlight %}
<p>If you want install it to <code>/</code> you must run it as root, e.g.:</p>
{% highlight bash %}
sudo ./install.sh
{% endhighlight %}
<p>If no path is specified it will be installed to <code>/</code> by default.</p></li>
</ul>
<h3><a href="#dependencies" class="anchor" name="dependencies"><span class="octicon octicon-link"></span></a>Dependencies</h3>
<p>I want note that all were tested on latest version of dependencies.</p>
<ul>
<li>Bash (including awk, grep, sed)</li>
<li>git</li>
<li>python2 <i>(make)</i></li>
<li>systemd <i>(optional, service file)</i></li>
<li>python2-pyqt4 <i>(optional, GUI)</i></li>
<li>xterm <i>(optional, GUI)</i></li>
</ul>
<!-- end of install block -->
<!-- howto block -->
<h2><a href="#howto" class="anchor" name="howto"><span class="octicon octicon-link"></span></a>How to use</h2>
<p>If you want to start the daemon into <code>/etc</code> just run</p>
{% highlight bash %}
systemctl start git-etc
{% endhighlight %}
<p>If you want to enable daemon autoload run</p>
{% highlight bash %}
systemctl enable git-etc
{% endhighlight %}
<p>But you may change path to configuration file or change parameters. To do it just copy (recommended) the source configuration file to new path</p>
{% highlight bash %}
cp /etc/git-etc.conf /new/path/to/file/git-etc.conf
{% endhighlight %}
<p>and edit it. Then copy the source service file to <code>/etc</code>:</p>
{% highlight bash %}
cp /usr/lib/systemd/system/git-etc.service /etc/systemd/system/git-etc-my-profile.service
{% endhighlight %}
<p>Replace following string in the file:</p>
{% highlight bash %}
ExecStart=/usr/bin/git-etc -c /etc/git-etc.conf
{% endhighlight %}
<p>to</p>
{% highlight bash %}
ExecStart=/usr/bin/git-etc -c /new/path/to/file/git-etc.conf
{% endhighlight %}
<!-- end of howto block -->
<!-- config block -->
<h2><a href="#config" class="anchor" name="config"><span class="octicon octicon-link"></span></a>Configuration</h2>
<p>All settings are stored in <code>/etc/git-etc.conf</code>. After edit them you must restart daemon</p>
{% highlight bash %}
systemctl restart git-etc
{% endhighlight %}
<h3><a href="#options" class="anchor" name="options"><span class="octicon octicon-link"></span></a>Options</h3>
<table>
<tr>
<th>DIRECTORY</th>
<td><p>Full path to working directory with observed files. Default is <code>/etc</code>.</p></td>
</tr>
<tr>
<th>TIMESLEEP</th>
<td><p>Time interval between updates, hours. It must be integer and >= 1. Default is <code>12</code>.</p></td>
</tr>
<tr>
<th>IGNORELIST</th>
<td><p>List of files that will not be observed. Separator is ";;". May be empty.</td>
</tr>
<tr>
<th>FORALL</th>
<td><p><code>1</code> will enable access for normal user. Default is <code>1</code>.</td>
</tr>
</table>
<!-- end of config block -->
<!-- gui block -->
<h2><a href="#gui" class="anchor" name="gui"><span class="octicon octicon-link"></span></a>Graphical user interface</h2>
<p>Control Config (<code>ctrlconf</code>) is GUI for <code>git-etc</code> daemon written on <code>Python2/PyQt4</code>. This application allows you to view a list of commits and changes in files recorded in commit messages. Also, this application allows you to roll back to a specific commit all files (<code>git reset --hard</code>) or individual files (<code>git diff && git apply</code>). And you may merge old and new configuration files (used two branches repository - master and experimental). The application may need root privileges. Make sure that <code>sudo</code> package is installed.</p>
<h3><a href="#gui_configuration" class="anchor" name="gui_configuration"><span class="octicon octicon-link"></span></a>Configuration</h3>
<p>Just run the application and open the settings window from menu!</p>
<h3><a href="#screenshots" class="anchor" name="screenshots"><span class="octicon octicon-link"></span></a>Screenshots</h3>
<p>(Screenshots in Russian, but GUI has English translation.)</p>
<div class="thumbnails">
{% assign scrdesc = "Main window" %}
{% assign scrname = "git-etc_mainwindow" %}
{% include prj_scr.html %}
{% assign scrdesc = "About window" %}
{% assign scrname = "git-etc_aboutwindow" %}
{% include prj_scr.html %}
{% assign scrdesc = "Commit window" %}
{% assign scrname = "git-etc_commitwindow" %}
{% include prj_scr.html %}
{% assign scrdesc = "Merging window" %}
{% assign scrname = "git-etc_mergingwindow" %}
{% include prj_scr.html %}
{% assign scrdesc = "Roll back window" %}
{% assign scrname = "git-etc_rollbackwindow" %}
{% include prj_scr.html %}
</div>
<!-- end of gui block -->