mirror of
https://github.com/arcan1s/arcanis.me.git
synced 2025-04-24 23:37:19 +00:00
218 lines
11 KiB
HTML
218 lines
11 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
|
<title>git-etc</title>
|
|
<meta name="author" content="Evgeniy Alekseev" />
|
|
<meta name="description" content="arcanis' homepage" />
|
|
<link rel="license" type="text/html" href="/LICENSE" />
|
|
|
|
<link rel="stylesheet" href="/stylesheets/styles.css">
|
|
<link rel="stylesheet" href="/stylesheets/pygment_trac.css">
|
|
<link rel="shortcut icon" href="/resources/icon.ico">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
|
<!--[if lt IE 9]>
|
|
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
<![endif]-->
|
|
<!-- comment block -->
|
|
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
|
|
<!-- sharethis -->
|
|
<script type="text/javascript">var switchTo5x=false;</script>
|
|
<script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script>
|
|
<script type="text/javascript">stLight.options({publisher: "70dd9cde-7276-47af-8de7-9c43883daf2b", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script>
|
|
</head>
|
|
<body>
|
|
<div class="wrapper">
|
|
<header>
|
|
<h1>git-etc</h1>
|
|
<p class="view">Simple daemon for monitoring changes in files</p>
|
|
<p class="view"><a href="#information">General information</a><br>
|
|
<a href="#installation">Installation guide</a><br>
|
|
<a href="#howto">How to use</a><br>
|
|
<a href="#configuration">Configuration</a><br>
|
|
<a href="#gui">GUI</a><br>
|
|
<a href="#screenshots">Screenshots</a><br>
|
|
<a href="#links">Links</a></p>
|
|
</header>
|
|
<section>
|
|
|
|
<h2><a name="information" class="anchor" href="#information"><span class="octicon octicon-link"></span></a>Information</h2>
|
|
<p align="justify">Simple daemon that automatically creates git repository in the given directory and creates commit at the specified time interval.</p>
|
|
<pre><code>$ 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</code></pre>
|
|
<pre><code>$ 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</code></pre>
|
|
|
|
<h3><a name="devel" class="anchor" href="#devel"><span class="octicon octicon-link"></span></a>Developers and contributors</h3>
|
|
<ul>
|
|
<li>Evgeniy Alekseev</li>
|
|
</ul>
|
|
|
|
<h3><a name="license" class="anchor" href="#license"><span class="octicon octicon-link"></span></a>License</h3>
|
|
<ul>
|
|
<li>GPLv3</li>
|
|
</ul>
|
|
|
|
<h2><a name="installation" class="anchor" href="#installation"><span class="octicon octicon-link"></span></a>Installation</h2>
|
|
|
|
<h3><a name="instruction" class="anchor" href="#instruction"><span class="octicon octicon-link"></span></a>Instruction</h3>
|
|
<ul>
|
|
<li><p align="justify">Download an <a href="https://github.com/arcan1s/git-etc/releases">archive</a> with latest version of source files.</p></li>
|
|
<li><p align="justify">Extract it and install the application:</p>
|
|
<pre><code>./install.sh "/path/to/root/package"</code></pre>
|
|
<p align="justify">If you want install it to <code>/</code> you must run it as root, e.g.:</p>
|
|
<pre><code>sudo ./install.sh "/path/to/root/package"</code></pre>
|
|
<p align="justify">If no path is specified it will be installed to <code>/</code> by default.</p></li>
|
|
</ul>
|
|
|
|
<h3><a name="dependencies" class="anchor" href="#dependencies"><span class="octicon octicon-link"></span></a>Dependencies</h3>
|
|
<p align="justify">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>
|
|
|
|
<h2><a name="howto" class="anchor" href="#howto"><span class="octicon octicon-link"></span></a>How to use</h2>
|
|
<p align="justify">If you want to start the daemon into <code>/etc</code> just run</p>
|
|
<pre><code>systemctl start git-etc</code></pre>
|
|
<p align="justify">If you want to enable daemon autoload run</p>
|
|
<pre><code>systemctl enable git-etc</code></pre>
|
|
<p align="justify">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>
|
|
<pre><code>cp /etc/git-etc.conf /new/path/to/file/git-etc.conf</code></pre>
|
|
<p align="justify">and edit it. Then copy the source service file to <code>/etc</code>:</p>
|
|
<pre><code>cp /usr/lib/systemd/system/git-etc.service /etc/systemd/system/git-etc-my-profile.service</code></pre>
|
|
<p align="justify">Replace following string in the file:</p>
|
|
<pre><code>ExecStart=/usr/bin/git-etc -c /etc/git-etc.conf</code></pre>
|
|
<p align="justify">to</p>
|
|
<pre><code>ExecStart=/usr/bin/git-etc -c /new/path/to/file/git-etc.conf</code></pre>
|
|
|
|
<h2><a name="configuration" class="anchor" href="#configuration"><span class="octicon octicon-link"></span></a>Configuration</h2>
|
|
<p align="justify">All settings are stored in <code>/etc/git-etc.conf</code>. After edit them you must restart daemon</p>
|
|
<pre><code>systemctl restart git-etc</code></pre>
|
|
|
|
<h3><a name="options" class="anchor" href="#options"><span class="octicon octicon-link"></span></a>Options</h3>
|
|
<table>
|
|
<tr>
|
|
<th>DIRECTORY</th>
|
|
<td><p align="justify">Full path to working directory with observed files. Default is <code>/etc</code>.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<th>TIMESLEEP</th>
|
|
<td><p align="justify">Time interval between updates. It must be integer and >= 1. Default is <code>12</code>.</p></td>
|
|
</tr>
|
|
<tr>
|
|
<th>IGNORELIST</th>
|
|
<td><p align="justify">List of files that will not be observed. Separator is ";;". May be empty.</td>
|
|
</tr>
|
|
<tr>
|
|
<th>FORALL</th>
|
|
<td><p align="justify"><code>1</code> will enable access for normal user. Default is <code>1</code>.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h2><a name="gui" class="anchor" href="#gui"><span class="octicon octicon-link"></span></a>Graphical user interface</h2>
|
|
<p align="justify">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 name="gui_configuration" class="anchor" href="#gui_configuration"><span class="octicon octicon-link"></span></a>Configuration</h3>
|
|
<p align="justify">Just run the application and open the settings window from menu!</p>
|
|
|
|
<h3><a name="screenshots" class="anchor" href="#screenshots"><span class="octicon octicon-link"></span></a>Screenshots</h3>
|
|
<p align="justify">(Screenshots in Russian, but GUI has English translation.)</p>
|
|
<p align="justify">Main window:<br>
|
|
<a href="/resources/screenshots/git-etc_mainwindow.png"><img src="/resources/preview/git-etc_mainwindow_prev.jpg"></a><br>
|
|
About window:<br>
|
|
<a href="/resources/screenshots/git-etc_aboutwindow.png"><img src="/resources/preview/git-etc_aboutwindow_prev.jpg"></a><br>
|
|
Commit changes window:<br>
|
|
<a href="/resources/screenshots/git-etc_commitwindow.png"><img src="/resources/preview/git-etc_commitwindow_prev.jpg"></a><br>
|
|
Merging window:<br>
|
|
<a href="/resources/screenshots/git-etc_mergingwindow.png"><img src="/resources/preview/git-etc_mergingwindow_prev.jpg"></a><br>
|
|
Roll back window:<br>
|
|
<a href="/resources/screenshots/git-etc_rollbackwindow.png"><img src="/resources/preview/git-etc_rollbackwindow_prev.jpg"></a></p>
|
|
|
|
<h2><a name="links" class="anchor" href="#links"><span class="octicon octicon-link"></span></a>Links</h2>
|
|
<ul>
|
|
<li><a href="https://github.com/arcan1s/git-etc">GitHub repo</a></li>
|
|
<li><a href="https://github.com/arcan1s/git-etc/releases">Latest release</a></li>
|
|
<li>Archlinux <a href="https://aur.archlinux.org/packages/git-etc">AUR package</a></li>
|
|
</ul>
|
|
|
|
<!-- comment block -->
|
|
<script type="text/javascript" src="http://datejs.googlecode.com/svn/trunk/build/date-en-US.js"></script>
|
|
<script type="text/javascript">
|
|
$("#post p").each( function(index) {
|
|
if (index > 0 && $.trim($(this).text()).length > 0) {
|
|
$(this).attr("id", "par" + index.toString());
|
|
var html = $(this).html();
|
|
$(this).html(html + " <a href='#par" + index.toString() + "'>#</a>");
|
|
}
|
|
});
|
|
</script>
|
|
<div id="comments">
|
|
<h2>Comments</h2>
|
|
<div id="header">
|
|
Want to leave a comment? Visit <a href="https://github.com/arcan1s/arcan1s.github.io/issues/1" target="_blank"> this post's issue page on GitHub</a> (you'll need a GitHub account).
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
function loadComments(data) {
|
|
for (var i=0; i<data.length; i++) {
|
|
var cuser = data[i].user.login;
|
|
var cuserlink = "https://www.github.com/" + data[i].user.login;
|
|
var clink = "https://github.com/arcan1s/arcan1s.github.io/issues/1#issuecomment-" + data[i].url.substring(data[i].url.lastIndexOf("/")+1);
|
|
var cbody = data[i].body_html;
|
|
var cavatarlink = data[i].user.avatar_url;
|
|
var cdate = Date.parse(data[i].created_at).toString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
$("#comments").append("<div class='comment'><div class='commentheader'><div class='commentgravatar'>" + '<img src="' + cavatarlink + '" alt="" width="20" height="20">' + "</div><a class='commentuser' href=\""+ cuserlink + "\">" + cuser + "</a><a class='commentdate' href=\"" + clink + "\">" + cdate + "</a></div><div class='commentbody'>" + cbody + "</div></div>");
|
|
}
|
|
}
|
|
$.ajax("https://api.github.com/repos/arcan1s/arcan1s.github.io/issues/1/comments?per_page=100", {
|
|
headers: {Accept: "application/vnd.github.full+json"},
|
|
dataType: "json",
|
|
success: function(msg){
|
|
loadComments(msg);
|
|
}
|
|
});
|
|
</script>
|
|
<!-- end of comment block -->
|
|
|
|
</section>
|
|
<footer>
|
|
<p class="view"><a href="javascript:history.back()">Back</a><br>
|
|
<a href="/">Back to Homepage</a></p>
|
|
<p><span class='st_vkontakte'></span>
|
|
<span class='st_facebook'></span>
|
|
<span class='st_twitter'></span>
|
|
<span class='st_googleplus'></span>
|
|
<span class='st_livejournal'></span><br>
|
|
<small>Hosted on GitHub Pages. <a href="/authors">Authors</a></small></p>
|
|
</footer>
|
|
</div>
|
|
<script src="/javascripts/scale.fix.js"></script>
|
|
|
|
</body>
|
|
</html>
|