--- layout: project title: git-etc short: git-etc commentIssueId: 1 description: Simple daemon for monitoring changes in files hasgui: true developers: - Evgeniy Alelseev license: GPLv3 links: - Archlinux AUR package ---

## Information

Simple daemon that automatically creates git repository in the given directory and creates commit at the specified time interval.

    $ 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

    $ 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

### Developers and contributors

{% for devel in page.developers %}
- {{ devel }}
{% endfor %}

### License

- {{ page.license }}

## Installation

### Instruction

- Download an archive with latest version of source files.

- Extract it and install the application:

      ./install.sh "/path/to/root"

  If you want install it to `/` you must run it as root, e.g.:

      sudo ./install.sh

  If no path is specified it will be installed to `/` by default.

### Dependencies

I want note that all were tested on latest version of dependencies.

- Bash (including awk, grep, sed)
- git
- python2 (make)
- systemd (optional, service file)
- python2-pyqt4 (optional, GUI)
- xterm (optional, GUI)

## How to use

If you want to start the daemon into `/etc` just run

    systemctl start git-etc

If you want to enable daemon autoload run

    systemctl enable git-etc

But you may change path to configuration file or change parameters. To do it just copy (recommended) the source configuration file to new path

    cp /etc/git-etc.conf /new/path/to/file/git-etc.conf

and edit it. Then copy the source service file to `/etc`:

    cp /usr/lib/systemd/system/git-etc.service /etc/systemd/system/git-etc-my-profile.service

Replace following string in the file:

    ExecStart=/usr/bin/git-etc -c /etc/git-etc.conf

to

    ExecStart=/usr/bin/git-etc -c /new/path/to/file/git-etc.conf

## Configuration

All settings are stored in `/etc/git-etc.conf`. After edit them you must restart daemon

    systemctl restart git-etc

### Options

DIRECTORY | Full path to working directory with observed files. Default is `/etc`.
TIMESLEEP | Time interval between updates, hours. It must be integer and >= 1. Default is `12`.
IGNORELIST | List of files that will not be observed. Separator is ";;". May be empty.
FORALL | `1` will enable access for normal user. Default is `1`.

## Graphical user interface

Control Config (`ctrlconf`) is GUI for `git-etc` daemon written on `Python2/PyQt4`. 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 (`git reset --hard`) or individual files (`git diff && git apply`). 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 `sudo` package is installed.

### Configuration

Just run the application and open the settings window from menu!

### Screenshots

(Screenshots in Russian, but GUI has English translation.)

Main window:
About window:
Commit changes window:
Merging window:
Roll back window: