Skip to content

Commit

Permalink
[gc] vault-gc systemd service
Browse files Browse the repository at this point in the history
Signed-off-by: Denis Zalevskiy <denis.zalevskiy@jolla.com>
  • Loading branch information
Denis Zalevskiy committed Oct 28, 2014
1 parent 53930cf commit c201710
Show file tree
Hide file tree
Showing 7 changed files with 42 additions and 4 deletions.
2 changes: 2 additions & 0 deletions CMakeLists.txt
@@ -1,6 +1,8 @@
PROJECT(VAULT)
cmake_minimum_required(VERSION 2.8.8)

set(prefix ${CMAKE_INSTALL_PREFIX})

IF(NOT DEFINED VERSION OR VERSION STREQUAL "")
message(FATAL_ERROR "Define VERSION")
ENDIF(NOT DEFINED VERSION OR VERSION STREQUAL "")
Expand Down
6 changes: 6 additions & 0 deletions qml/Vault/vault.cpp
Expand Up @@ -308,4 +308,10 @@ void Vault::registerUnit(const QJSValue &unit, bool global)
}
}

void Vault::startGc()
{
if (os::system("systemctl", {"--user", "start", "vault-gc.service"}) != 0)
debug::error("Can't start vault-gc.service");
}

#include "vault.moc"
1 change: 1 addition & 0 deletions qml/Vault/vault.hpp
Expand Up @@ -52,6 +52,7 @@ class Vault : public QObject
Q_INVOKABLE QString notes(const QString &snapshot) const;

Q_INVOKABLE void registerUnit(const QJSValue &unit, bool global);
Q_INVOKABLE void startGc();

signals:
void rootChanged();
Expand Down
26 changes: 23 additions & 3 deletions rpm/vault.spec
@@ -1,3 +1,5 @@
%{!?_with_usersession: %{!?_without_usersession: %define _with_usersession --with-usersession}}

Summary: Incremental backup/restore framework
Name: vault
Version: 0.1.0
Expand All @@ -12,13 +14,15 @@ BuildRequires: pkgconfig(gittin)
BuildRequires: pkgconfig(tut) >= 0.0.3
BuildRequires: pkgconfig(Qt5Core) >= 5.2.0
BuildRequires: pkgconfig(Qt5Qml)
BuildRequires: pkgconfig(qtaround) >= 0.2.0
%{?_with_usersession:Requires: systemd-user-session-targets}
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig

%description
Incremental backup/restore framework

%{?_with_usersession:%define _userunitdir %{_libdir}/systemd/user/}

%package devel
Summary: vault headers etc.
Group: Development/Libraries
Expand All @@ -45,6 +49,10 @@ make %{?jobs:-j%jobs}
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=%{buildroot}

%if 0%{?_with_usersession:1}
install -D -p -m644 tools/vault-gc.service %{buildroot}%{_userunitdir}/vault-gc.service
%endif

%clean
rm -rf $RPM_BUILD_ROOT

Expand All @@ -58,6 +66,9 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/qt5/qml/NemoMobile/Vault/*
%{_bindir}/vault
%{tools_dir}/*
%if 0%{?_with_usersession:1}
%{_userunitdir}/vault-gc.service
%endif

%files devel
%defattr(-,root,root,-)
Expand All @@ -69,5 +80,14 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
/opt/tests/vault/*

%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post
/sbin/ldconfig || :
%if 0%{?_with_usersession:1}
systemctl-user daemon-reload || :
%endif

%postun
/sbin/ldconfig || :
%if 0%{?_with_usersession:1}
systemctl-user daemon-reload || :
%endif
4 changes: 3 additions & 1 deletion tools/CMakeLists.txt
@@ -1,5 +1,7 @@
configure_file(vault-gc.service.in vault-gc.service @ONLY)

install(
PROGRAMS git-vault-gc
PROGRAMS git-vault-gc gc-default
DESTINATION libexec/vault
)

Expand Down
2 changes: 2 additions & 0 deletions tools/gc-default
@@ -0,0 +1,2 @@
#!/bin/sh
/usr/bin/vault -H $HOME -V $HOME/.vault -a gc
5 changes: 5 additions & 0 deletions tools/vault-gc.service.in
@@ -0,0 +1,5 @@
[Unit]
Description=Vault garbage collection

[Service]
ExecStart=@prefix@/libexec/vault/gc-default

0 comments on commit c201710

Please sign in to comment.