Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • backupninja.conf.d
  • borg-custom-init-options
  • borg-sftp-support
  • borg-ssh-keygen
  • debian
  • develop
  • expand_pruning_options
  • feature/issues-9806
  • feature/shellcheck-and-modernization
  • hotfix/duphelper-readd-dodupsrc
  • hotfix/syshandler-overwrite-luksheaderbackup
  • maethor-master-patch-46063
  • maethor-master-patch-70558
  • mariaback_full-intial
  • master
  • nap-initial
  • pristine-tar
  • prometheus
  • stretch-backports
  • systemd_integration
  • upstream
  • when-override
  • backupninja-0.3.4
  • backupninja-0.4.0
  • backupninja-0.4.1
  • backupninja-0.4.2
  • backupninja-0.4.4
  • backupninja-0.5
  • backupninja-0.7
  • backupninja-0.8
  • backupninja-0.9
  • backupninja-0.9.1
  • backupninja-0.9.10
  • backupninja-0.9.2
  • backupninja-0.9.3
  • backupninja-0.9.4
  • backupninja-0.9.5
  • backupninja-0.9.6
  • backupninja-0.9.7
  • backupninja-0.9.8
  • backupninja-0.9.8.1
  • backupninja-0.9.9
  • backupninja-1.0
  • backupninja-1.0-rc1
  • backupninja-1.0.1
  • backupninja-1.0.2
  • backupninja-1.1.0
  • backupninja-1.2.0
  • backupninja-1.2.0-rc1
  • backupninja-1.2.1
  • backupninja_debian/0.9.10-1
  • backupninja_debian/0.9.10-2
  • backupninja_debian/0.9.9-1
  • backupninja_debian/1.0-1
  • backupninja_debian/1.0.1-1
  • backupninja_debian/1.0.1-2
  • backupninja_debian/1.0.2-1
  • backupninja_debian/1.0_rc1-1
  • backupninja_debian/1.1.0-1
  • backupninja_debian/1.2.0-1
  • backupninja_debian/1.2.1-1
  • backupninja_upstream/0.9.10
  • backupninja_upstream/1.0
  • backupninja_upstream/1.0.1
  • backupninja_upstream/1.0.2
  • backupninja_upstream/1.0_rc1
  • backupninja_upstream/1.1.0
  • backupninja_upstream/1.2.0
  • backupninja_upstream/1.2.1
69 results

Target

Select target project
No results found
Select Git revision
  • backupninja.conf.d
  • borg-custom-init-options
  • borg-sftp-support
  • borg-ssh-keygen
  • debian
  • expand_pruning_options
  • maethor-master-patch-46063
  • maethor-master-patch-70558
  • mariaback_full-intial
  • master
  • nap-initial
  • pristine-tar
  • stretch-backports
  • systemd_integration
  • upstream
  • when-override
  • backupninja-0.3.4
  • backupninja-0.4.0
  • backupninja-0.4.1
  • backupninja-0.4.2
  • backupninja-0.4.4
  • backupninja-0.5
  • backupninja-0.7
  • backupninja-0.8
  • backupninja-0.9
  • backupninja-0.9.1
  • backupninja-0.9.10
  • backupninja-0.9.2
  • backupninja-0.9.3
  • backupninja-0.9.4
  • backupninja-0.9.5
  • backupninja-0.9.6
  • backupninja-0.9.7
  • backupninja-0.9.8
  • backupninja-0.9.8.1
  • backupninja-0.9.9
  • backupninja-1.0
  • backupninja-1.0-rc1
  • backupninja-1.0.1
  • backupninja-1.0.2
  • backupninja-1.1.0
  • backupninja-1.2.0
  • backupninja-1.2.0-rc1
  • backupninja-1.2.1
  • backupninja-1.2.2
  • backupninja_debian/0.9.10-1
  • backupninja_debian/0.9.10-2
  • backupninja_debian/0.9.9-1
  • backupninja_debian/1.0-1
  • backupninja_debian/1.0.1-1
  • backupninja_debian/1.0.1-2
  • backupninja_debian/1.0.2-1
  • backupninja_debian/1.0_rc1-1
  • backupninja_debian/1.1.0-1
  • backupninja_debian/1.2.0-1
  • backupninja_debian/1.2.1-1
  • backupninja_debian/1.2.2-1
  • backupninja_upstream/0.9.10
  • backupninja_upstream/1.0
  • backupninja_upstream/1.0.1
  • backupninja_upstream/1.0.2
  • backupninja_upstream/1.0_rc1
  • backupninja_upstream/1.1.0
  • backupninja_upstream/1.2.0
  • backupninja_upstream/1.2.1
  • backupninja_upstream/1.2.2
66 results
Show changes

Commits on Source 121

21 additional commits have been omitted to prevent performance issues.
34 files
+ 10302
758
Compare changes
  • Side-by-side
  • Inline

Files

.gitignore

deleted100644 → 0
+0 −55
Original line number Original line Diff line number Diff line
Makefile.in
aclocal.m4
autom4te.cache/
configure
etc/Makefile.in
examples/Makefile.in
handlers/Makefile.in
install-sh
lib/Makefile.in
man/Makefile.in
missing
src/Makefile.in
Makefile
backupninja.spec
config.log
config.status
etc/Makefile
etc/backupninja.conf
etc/cron.d/backupninja
etc/logrotate.d/backupninja
examples/Makefile
handlers/Makefile
handlers/borg
handlers/borg.helper
handlers/dup
handlers/dup.helper
handlers/ldap
handlers/ldap.helper
handlers/maildir
handlers/makecd
handlers/makecd.helper
handlers/mysql
handlers/mysql.helper
handlers/pgsql
handlers/pgsql.helper
handlers/rdiff
handlers/rdiff.helper
handlers/rsync
handlers/sh
handlers/svn
handlers/sys
handlers/sys.helper
handlers/tar
handlers/tar.helper
handlers/trac
lib/Makefile
lib/easydialog
lib/parseini
lib/tools
lib/vserver
man/Makefile
src/Makefile
src/backupninja
src/ninjahelper
.vagrant

Makefile.in

0 → 100644
+784 −0

File added.

Preview size limit exceeded, changes collapsed.

RELEASE.md

deleted100644 → 0
+0 −84
Original line number Original line Diff line number Diff line
Upstream
========

* prepare the environment:

        export VERSION=x.y.z

* update `configure.ac` and `ChangeLog`

        perl -pi -E \
           "s{^AC_INIT\(\[backupninja\],\[[0-9.]+\],}{AC_INIT([backupninja],[$VERSION],}" \
           configure.ac && \
        RELEASE_DATE=$(LC_ALL=C date '+%B %d, %Y') perl -pi -E \
           "s{^version\s+[0-9.]+\s+--\s+UNRELEASED$}{version $VERSION -- $RELEASE_DATE}" \
           ChangeLog

* commit, tag and create the tarball:

        git commit configure.ac ChangeLog \
            -m "Releasing backupninja $VERSION" && \
        git clean -fdx && \
        git tag -s "backupninja-$VERSION" \
            -m "Releasing backupninja $VERSION" && \
        ./autogen.sh && \
        ./configure && \
        make dist

* compare the content of the generated tarball with the content of the
  previous one

* move the tarball outside of the Git working copy and clean up:

        mkdir -p ../tarballs && \
        mv backupninja-$VERSION.tar.gz ../tarballs/ && \
        make distclean && \
        git clean -fdx

* Install (extract tarball, `.configure && make && sudo make install`)
  and test.

Debian
======

Prepare a new package:

        git checkout debian && \
        gbp import-orig --upstream-vcs-tag="backupninja-$VERSION" \
            ../tarballs/backupninja-$VERSION.tar.gz && \
        gbp dch --auto && \
        dch -e && \
        export DEBIAN_VERSION=$(dpkg-parsechangelog -SVersion) && \
        git commit debian/changelog \
           -m "Releasing backupninja ($DEBIAN_VERSION) to Debian unstable" && \
        gbp buildpackage

Install the `.deb` and test.

Release
=======

* sign the release and push it to Git:

        gpg --armor --detach-sign \
            ../tarballs/backupninja-$VERSION.tar.gz && \
        git checkout debian && \
        gbp buildpackage --git-tag-only --git-sign-tags && \
        git push --follow-tags origin \
            master:master \
            debian:debian \
            pristine-tar:pristine-tar \
            upstream:upstream

* upload the upstream tarball and detached signature to the GitLab
  milestone page with *Edit**Attach a file*
* announce the release on the backupninja mailing-list,
  pointing to the milestone web page
* upload to Debian or ask someone listed in the `Uploaders` control
  field to review and upload

Open the next development cycle
===============================

* `git checkout master`
* Add an empty new section in `ChangeLog`, commit and push.

Vagrantfile

deleted100644 → 0
+0 −15
Original line number Original line Diff line number Diff line
# -*- mode: ruby -*-
# vi: set ft=ruby :

ENV["LC_ALL"] = "en_US.UTF-8"

Vagrant.configure("2") do |config|
  config.vm.box = "debian/stretch64"
  config.vm.provision "shell", inline: <<-SHELL
    locale-gen
    apt-get update
    apt-get install -y git automake make
    git clone https://0xacab.org/riseuplabs/backupninja.git
    chown vagrant: backupninja -R
  SHELL
end

aclocal.m4

0 → 100644
+740 −0

File added.

Preview size limit exceeded, changes collapsed.

backupninja.spec

0 → 100644
+65 −0
Original line number Original line Diff line number Diff line
%define name    backupninja
%define version 1.1.0

Summary:    Backupninja backup tool
Name:       %{name}
Version:    %{version}
Release:    1
License:    GPL
Group:      Applications/System
URL:        https://0xacab.org/riseuplabs/backupninja
Source:     %{name}-%{version}.tar.gz
Requires:   bash, gawk, rdiff-backup, gzip
Provides:   %{name}
Packager:   Petr Klima <Petr.Klima@madeta-group.cz>
BuildRoot:  %{_tmppath}/%{name}-%{version}
Prefix:     %{_prefix}

%description
Modular rdiff.backup tool

%prep
%setup -q

%build
%configure
make

%install
rm -rf ${buildroot}
%makeinstall
mkdir -p "%{buildroot}%{_sysconfdir}/backup.d"
mkdir -p "%{buildroot}%{_localstatedir}/backups"
mkdir -p "%{buildroot}%{_localstatedir}/log"
touch "%{buildroot}%{_localstatedir}/log/backupninja.log"

%clean
rm -fr %{buildroot}

%files
%defattr(-,root,root,-)
%{_sbindir}/*
%{_datadir}/backupninja/*
%{_libdir}/backupninja/*

%config %{_sysconfdir}/cron.d/backupninja
%config %{_sysconfdir}/logrotate.d/backupninja

%config(noreplace) %{_sysconfdir}/backupninja.conf
%dir %{_localstatedir}/backups

%ghost %{_localstatedir}/log/backupninja.log

%doc AUTHORS COPYING ChangeLog INSTALL.md NEWS README.md
%{_mandir}/man1/*
%{_mandir}/man5/*

%defattr(0640,root,root,0750)
%dir %{_sysconfdir}/backup.d


%changelog
* Sun Oct 14 2007 Adam Monsen <haircut@gmail.com> 0.9.5-1
- use cleanup steps during %install and %clean
* Mon Apr 29 2002 Petr Klima <Petr.Klima@madeta-group.cz> 0.7.0
- first RPM release

configure

0 → 100755
+3912 −0

File added.

Preview size limit exceeded, changes collapsed.

debian/NEWS

0 → 100644
+78 −0
Original line number Original line Diff line number Diff line
backupninja (1.0~rc1-1) unstable; urgency=low

  duplicity 0.6.17 and later has moved to a new sftp/scp backend
  which no longer uses sftp/scp client programs, but instead relies on
  paramiko, a Python ssh+sftp implementation.

  Therefore, the sshoptions option of the backupninja duplicity handler
  cannot be used for anything but the one supported by this new backend:
  -oIdentityfile=some_key_file -- all other ssh options are ignored.

 -- intrigeri <intrigeri@debian.org>  Fri, 27 Apr 2012 23:07:11 +0200

backupninja (0.9.10-1) unstable; urgency=low

  Being severely broken for ages (see #596935), LDAP support was removed upstream.
  It will come back once this code has found itself a maintainer.
  Interested? Get in touch!

 -- intrigeri <intrigeri+debian@boum.org>  Fri, 23 Sep 2011 17:32:11 +0200

backupninja (0.9.8-1) unstable; urgency=low

  * duplicity 0.6.01 and later defaults to using an archive (cache)
    directory, which was previously opt-in. Starting with backupninja
    0.9.8, the backupninja duplicity handler puts this cache into
    /var/cache/backupninja/duplicity unless specified by the user with
    the "options" setting the *.dup job.
    When backups have been performed with backupninja older than 0.9.8 in
    conjunction with duplicity 0.6.01 or later, e.g. when using Sid or
    Squeeze at certain times of the Squeeze release cycle, cache files
    were probably saved into /root/.cache/duplicity; one may want to
    delete these files, or rather save bandwidth and just move the cache
    directory to the new location:

      mkdir -p /var/cache/backupninja
      mv /root/.cache/duplicity /var/cache/backupninja/

    It is probably desirable to exclude this cache directory from
    duplicity backup sets to avoid some kind of reentrant backup problem.

 -- Micah Anderson <micah@riseup.net>  Sun, 12 Sep 2010 19:58:49 +0200

backupninja (0.9.4-1) unstable; urgency=low

  * duplicity: Old (pre-0.9.4) example.dup file used to give false
    information about the way the GnuPG-related options are used.
    Please read the new /usr/share/doc/backupninja/examples/example.dup
    file, and update your own configuration files if needed.

  * duplicity, rdiff: symlinks and globbing support in
    include/exclude/vsinclude was unclear and did not work in all
    situations, with weird behavious, due to incompatibilities
    between various readlink versions in this field. This has been made
    clear eventually: globbing is fully supported again, whereas no
    attempt is done to dereference symlinks anymore. 
    Please read the new /usr/share/doc/backupninja/examples/example.dup
    or /usr/share/doc/backupninja/examples/example.rdiff file, and update
    your own configuration files if needed.

  * duplicity: duplicity now uses sftp, which does not support all scp
    command line options; you thus have to convert the sshoptions setting
    in your *.dup configuration files, to sftp-compatible syntax; for
    example, you can replace:
      sshoptions = -i /root/.ssh/id_dsa_duplicity
    with:
      sshoptions = -o IdentityFile=/root/.ssh/id_dsa_duplicity

 -- Micah Anderson <micah@riseup.net>  Fri,  6 Oct 2006 13:04:45 -0600

backupninja (0.9.2-1) unstable; urgency=low

  WARNING FOR DUPLICITY USERS

  Old (pre-0.9.2) example.dup file used to give false information about the way
  the GnuPG-related options are used. Please read the new example.dup file, and
  update your own configuration files if needed.

 -- Micah Anderson <micah@riseup.net>  Thu, 29 Dec 2005 14:21:48 -0500
+4 −0
Original line number Original line Diff line number Diff line
usr/lib
usr/sbin
usr/share/backupninja
etc/backup.d
+12 −0
Original line number Original line Diff line number Diff line
examples/example.dup
examples/example.maildir
examples/example.makecd
examples/example.mysql
examples/example.pgsql
examples/example.rdiff
examples/example.rsync
examples/example.sh
examples/example.svn
examples/example.sys
examples/example.trac
debian/backupninja/etc/backupninja.conf
+6 −0
Original line number Original line Diff line number Diff line
# Policy §10.9 wants 0755 or 2770 but since secrets could be stored there
# we want this only accessed by root, and optionally by the "admingroup"
# defined in backupninja.conf
non-standard-dir-perm etc/backup.d/ 2770 != 0755
# The first occurrence is for the handler, the 2nd is for the package
spelling-error-in-description rsync rsync (duplicate word) rsync
+32 −0
Original line number Original line Diff line number Diff line
#!/bin/sh
set -e

# Remove the erroneous /etc/logrotate.d/backupninja directory if it exists

if [ -d /etc/logrotate.d/backupninja ] 
then
	rm -f /etc/logrotate.d/backupninja/backupninja
	rmdir /etc/logrotate.d/backupninja
	if [ $? -ne 0 ]
	then 
		cat << EOF

The /etc/logrotate.d/backupninja directory was created incorrectly by an earlier 
version of this package. When trying to remove this directory file(s) were found
inside this directory. There should be no files in this directory at all. 
Installation of this package will not proceed until you have cleaned this 
directory out.

EOF
	
		exit 1
	fi
fi

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0

debian/changelog

0 → 100644
+824 −0

File added.

Preview size limit exceeded, changes collapsed.

debian/compat

0 → 100644
+1 −0
Original line number Original line Diff line number Diff line
10

debian/control

0 → 100644
+63 −0
Original line number Original line Diff line number Diff line
Source: backupninja
Section: admin
Priority: optional
Maintainer: Debian backupninja maintainers <pkg-backupninja@lists.riseup.net>
Uploaders: Micah Anderson <micah@riseup.net>,
 intrigeri <intrigeri@debian.org>,
 Jerome Charaoui <jerome@riseup.net>
Build-Depends:
 debhelper (>= 10)
Build-Conflicts: autoconf2.13
Standards-Version: 4.1.4
Homepage: https://0xacab.org/riseuplabs/backupninja
Vcs-Browser: https://0xacab.org/riseuplabs/backupninja/tree/debian
Vcs-Git: https://0xacab.org/riseuplabs/backupninja.git

Package: backupninja
Architecture: all
Depends:
 gawk | mawk,
 dialog,
 bash (>=2.05b-26),
 bsd-mailx | mailx | mailutils,
 ${misc:Depends}
Suggests:
 bzip2,
 debconf-utils,
 duplicity,
 genisoimage,
 fdisk | util-linux (<< 2.29.2-3~),
 hwinfo,
 mdadm,
 rdiff-backup,
 rsync,
 subversion,
 trickle,
 wodim,
 borgbackup
Description: lightweight, extensible meta-backup system
 Backupninja lets you drop simple config files in /etc/backup.d to
 coordinate system backups. Backupninja is a master of many arts,
 including incremental remote filesystem backup, and MySQL backup.
 By creating simple drop-in handler scripts, backupninja can learn new skills.
 Backupninja is a silent flower blossom death strike to lost data.
 .
 In addition to backing up regular files, Backupninja has handlers to ease 
 backing up: Maildir, MySQL, PostgreSQL, SVN, Trac, hardware and system
 information, as well as the output from custom shell scripts.
 .
 Backupninja currently supports common backup utilities, easing their 
 configuration, currently supported are: rdiff-backup, duplicity, rsync,
 borgbackup and CD/DVD.
 .
 Most handlers have their own dependencies/recommendations, shown in brackets
 below:
 .
  - dup [duplicity, trickle]
  - rdiff [rdiff-backup]
  - sys [debconf-utils, hwinfo, mdadm]
  - makecd [genisoimage, wodim]
  - rsync [rsync]
  - svn [subversion]
  - tar [bzip2]
  - borg [borgbackup]

debian/copyright

0 → 100644
+34 −0
Original line number Original line Diff line number Diff line
This was turned into a debian package by Micah Anderson <micah@riseup.net> on
Sat, 18 Sep 2004 16:03:11 -0500.

The upstream source was obtained from
https://0xacab.org/riseuplabs/backupninja

The Git repository can be viewed at
https://0xacab.org/riseuplabs/backupninja/tree/debian

backupninja was originally written by elijah@riseup.net, for a full list of
authors see AUTHORS.

Copyright (C) 2004-2010 Riseup Networks
   
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.
		 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
	  
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to:

        Free Software Foundation, Inc. 
	51 Franklin St, Fifth Floor
	Boston, MA 02110-1301, USA.

On Debian GNU/Linux systems, the complete text of the GNU General Public
License can be found in the /usr/share/common-licenses' directory.

debian/docs

0 → 100644
+2 −0
Original line number Original line Diff line number Diff line
README
AUTHORS

debian/gbp.conf

0 → 100644
+6 −0
Original line number Original line Diff line number Diff line
[DEFAULT]
upstream-branch = upstream
debian-branch = debian
upstream-tag = backupninja_upstream/%(version)s
debian-tag = backupninja_debian/%(version)s
pristine-tar = True

debian/rules

0 → 100755
+30 −0
Original line number Original line Diff line number Diff line
#!/usr/bin/make -f
# -*- makefile -*-

PACKAGE = backupninja
TMP = $(CURDIR)/debian/$(PACKAGE)

%:
	dh $@

override_dh_auto_configure:
	dh_auto_configure -- \
	   --libdir=\$${prefix}/lib \
	   --libexecdir=\$${prefix}/lib

override_dh_auto_install:
	dh_auto_install
	chmod a-x $(TMP)/usr/lib/backupninja/parseini
	chmod a-x $(TMP)/usr/lib/backupninja/vserver
	rm $(TMP)/usr/share/backupninja/example.*

override_dh_compress:
	dh_compress -Xexample

override_dh_fixperms:
	dh_fixperms
	chmod 2770 $(TMP)/etc/backup.d

override_dh_installchangelogs:
	dh_installchangelogs ChangeLog

debian/source/format

0 → 100644
+1 −0
Original line number Original line Diff line number Diff line
3.0 (quilt)
+5 −0
Original line number Original line Diff line number Diff line
# Upstream does not publish any tarball other than GitLab-generated ones,
# that should not be imported directly via uscan and gbp import-orig,
# so debian/watch is voluntarily not provided in order to avoid malformed
# imports.
backupninja: debian-watch-file-is-missing

debian/source/options

0 → 100644
+1 −0
Original line number Original line Diff line number Diff line
extend-diff-ignore = "(^|/)(aclocal.m4|config\.sub|config\.guess|configure|install-sh|Makefile|Makefile.in|missing)$"

etc/Makefile.in

0 → 100644
+484 −0
Original line number Original line Diff line number Diff line
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@

VPATH = @srcdir@
am__is_gnu_make = { \
  if test -z '$(MAKELEVEL)'; then \
    false; \
  elif test -n '$(MAKE_HOST)'; then \
    true; \
  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
    true; \
  else \
    false; \
  fi; \
}
am__make_running_with_option = \
  case $${target_option-} in \
      ?) ;; \
      *) echo "am__make_running_with_option: internal error: invalid" \
              "target option '$${target_option-}' specified" >&2; \
         exit 1;; \
  esac; \
  has_opt=no; \
  sane_makeflags=$$MAKEFLAGS; \
  if $(am__is_gnu_make); then \
    sane_makeflags=$$MFLAGS; \
  else \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        bs=\\; \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
    esac; \
  fi; \
  skip_next=no; \
  strip_trailopt () \
  { \
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
  }; \
  for flg in $$sane_makeflags; do \
    test $$skip_next = yes && { skip_next=no; continue; }; \
    case $$flg in \
      *=*|--*) continue;; \
        -*I) strip_trailopt 'I'; skip_next=yes;; \
      -*I?*) strip_trailopt 'I';; \
        -*O) strip_trailopt 'O'; skip_next=yes;; \
      -*O?*) strip_trailopt 'O';; \
        -*l) strip_trailopt 'l'; skip_next=yes;; \
      -*l?*) strip_trailopt 'l';; \
      -[dEDm]) skip_next=yes;; \
      -[JT]) skip_next=yes;; \
    esac; \
    case $$flg in \
      *$$target_option*) has_opt=yes; break;; \
    esac; \
  done; \
  test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
subdir = etc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN     " $@;
am__v_GEN_1 = 
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
  for p in $$list; do echo "$$p $$p"; done | \
  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
    if (++n[$$2] == $(am__install_max)) \
      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
    END { for (dir in files) print dir, files[dir] }'
am__base_list = \
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
  test -z "$$files" \
    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
         $(am__cd) "$$dir" && rm -f $$files; }; \
  }
am__installdirs = "$(DESTDIR)$(sysconfdir)"
DATA = $(nobase_sysconf_DATA)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASH = @BASH@
CFGDIR = @CFGDIR@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
HAVE_RPM = @HAVE_RPM@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MKTEMP = @MKTEMP@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STAT = @STAT@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_cv_have_rpm = @ac_cv_have_rpm@
am__leading_dot = @am__leading_dot@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXTRA_DIST = backupninja.conf.in cron.d/backupninja.in \
        logrotate.d/backupninja.in

GENERATED_FILES = backupninja.conf cron.d/backupninja logrotate.d/backupninja
CLEANFILES = $(GENERATED_FILES)
nobase_sysconf_DATA = $(GENERATED_FILES)
edit = sed \
    -e "s,@BASH\@,$(BASH),g" \
    -e "s,@CFGDIR\@,$(CFGDIR),g" \
    -e "s,@sysconfdir\@,$(sysconfdir),g" \
    -e "s,@localstatedir\@,$(localstatedir),g" \
    -e "s,@pkgdatadir\@,$(pkgdatadir),g" \
    -e "s,@pkglibdir\@,$(pkglibdir),g" \
    -e "s,@sbindir\@,$(sbindir),g" \
    -e "s,@exec_prefix\@,$(exec_prefix),g" \
    -e "s,@prefix\@,$(prefix),g"

all: all-am

.SUFFIXES:
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign etc/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign etc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure:  $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-nobase_sysconfDATA: $(nobase_sysconf_DATA)
	@$(NORMAL_INSTALL)
	@list='$(nobase_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" || exit 1; \
	fi; \
	$(am__nobase_list) | while read dir files; do \
	  xfiles=; for file in $$files; do \
	    if test -f "$$file"; then xfiles="$$xfiles $$file"; \
	    else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
	  test -z "$$xfiles" || { \
	    test "x$$dir" = x. || { \
	      echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)/$$dir'"; \
	      $(MKDIR_P) "$(DESTDIR)$(sysconfdir)/$$dir"; }; \
	    echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(sysconfdir)/$$dir'"; \
	    $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(sysconfdir)/$$dir" || exit $$?; }; \
	done

uninstall-nobase_sysconfDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(nobase_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
	$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
	dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir)
tags TAGS:

ctags CTAGS:

cscope cscopelist:


distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
	for dir in "$(DESTDIR)$(sysconfdir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-am
install-strip:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
mostlyclean-generic:

clean-generic:
	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-am

clean-am: clean-generic mostlyclean-am

distclean: distclean-am
	-rm -f Makefile
distclean-am: clean-am distclean-generic

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am:
	@$(NORMAL_INSTALL)
	$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-am

install-dvi-am:

install-exec-am: install-nobase_sysconfDATA

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-generic

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am: uninstall-nobase_sysconfDATA

.MAKE: install-am install-data-am install-strip

.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
	ctags-am distclean distclean-generic distdir dvi dvi-am html \
	html-am info info-am install install-am install-data \
	install-data-am install-data-hook install-dvi install-dvi-am \
	install-exec install-exec-am install-html install-html-am \
	install-info install-info-am install-man \
	install-nobase_sysconfDATA install-pdf install-pdf-am \
	install-ps install-ps-am install-strip installcheck \
	installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
	pdf-am ps ps-am tags-am uninstall uninstall-am \
	uninstall-nobase_sysconfDATA

.PRECIOUS: Makefile


cron.d/backupninja: cron.d/backupninja.in
	rm -f cron.d/backupninja
	$(edit) cron.d/backupninja.in > cron.d/backupninja
	chmod 644 cron.d/backupninja

logrotate.d/backupninja: logrotate.d/backupninja.in
	rm -f logrotate.d/backupninja
	$(edit) logrotate.d/backupninja.in > logrotate.d/backupninja
	chmod ugo+x logrotate.d/backupninja

backupninja.conf: backupninja.conf.in
	rm -f backupninja.conf
	$(edit) backupninja.conf.in > backupninja.conf

install-data-hook:
	mkdir -p $(DESTDIR)/$(sysconfdir)/backup.d
	chmod 0770 $(DESTDIR)/$(sysconfdir)/backup.d

# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

examples/Makefile.in

0 → 100644
+450 −0
Original line number Original line Diff line number Diff line
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@

VPATH = @srcdir@
am__is_gnu_make = { \
  if test -z '$(MAKELEVEL)'; then \
    false; \
  elif test -n '$(MAKE_HOST)'; then \
    true; \
  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
    true; \
  else \
    false; \
  fi; \
}
am__make_running_with_option = \
  case $${target_option-} in \
      ?) ;; \
      *) echo "am__make_running_with_option: internal error: invalid" \
              "target option '$${target_option-}' specified" >&2; \
         exit 1;; \
  esac; \
  has_opt=no; \
  sane_makeflags=$$MAKEFLAGS; \
  if $(am__is_gnu_make); then \
    sane_makeflags=$$MFLAGS; \
  else \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        bs=\\; \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
    esac; \
  fi; \
  skip_next=no; \
  strip_trailopt () \
  { \
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
  }; \
  for flg in $$sane_makeflags; do \
    test $$skip_next = yes && { skip_next=no; continue; }; \
    case $$flg in \
      *=*|--*) continue;; \
        -*I) strip_trailopt 'I'; skip_next=yes;; \
      -*I?*) strip_trailopt 'I';; \
        -*O) strip_trailopt 'O'; skip_next=yes;; \
      -*O?*) strip_trailopt 'O';; \
        -*l) strip_trailopt 'l'; skip_next=yes;; \
      -*l?*) strip_trailopt 'l';; \
      -[dEDm]) skip_next=yes;; \
      -[JT]) skip_next=yes;; \
    esac; \
    case $$flg in \
      *$$target_option*) has_opt=yes; break;; \
    esac; \
  done; \
  test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
subdir = examples
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(dist_pkgdata_DATA) \
	$(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN     " $@;
am__v_GEN_1 = 
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
  for p in $$list; do echo "$$p $$p"; done | \
  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
    if (++n[$$2] == $(am__install_max)) \
      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
    END { for (dir in files) print dir, files[dir] }'
am__base_list = \
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
  test -z "$$files" \
    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
         $(am__cd) "$$dir" && rm -f $$files; }; \
  }
am__installdirs = "$(DESTDIR)$(pkgdatadir)"
DATA = $(dist_pkgdata_DATA)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASH = @BASH@
CFGDIR = @CFGDIR@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
HAVE_RPM = @HAVE_RPM@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MKTEMP = @MKTEMP@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STAT = @STAT@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_cv_have_rpm = @ac_cv_have_rpm@
am__leading_dot = @am__leading_dot@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXAMPLES = example.borg example.dup example.maildir example.makecd \
		example.mysql example.pgsql example.rdiff example.rsync \
		example.sh example.svn example.sys example.trac

EXTRA_DIST = $(EXAMPLES)
dist_pkgdata_DATA = $(EXAMPLES)
all: all-am

.SUFFIXES:
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign examples/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign examples/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure:  $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-dist_pkgdataDATA: $(dist_pkgdata_DATA)
	@$(NORMAL_INSTALL)
	@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \
	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \
	done

uninstall-dist_pkgdataDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
tags TAGS:

ctags CTAGS:

cscope cscopelist:


distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
	for dir in "$(DESTDIR)$(pkgdatadir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-am
install-strip:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
mostlyclean-generic:

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-am

clean-am: clean-generic mostlyclean-am

distclean: distclean-am
	-rm -f Makefile
distclean-am: clean-am distclean-generic

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am: install-dist_pkgdataDATA

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-generic

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am: uninstall-dist_pkgdataDATA

.MAKE: install-am install-strip

.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
	ctags-am distclean distclean-generic distdir dvi dvi-am html \
	html-am info info-am install install-am install-data \
	install-data-am install-dist_pkgdataDATA install-dvi \
	install-dvi-am install-exec install-exec-am install-html \
	install-html-am install-info install-info-am install-man \
	install-pdf install-pdf-am install-ps install-ps-am \
	install-strip installcheck installcheck-am installdirs \
	maintainer-clean maintainer-clean-generic mostlyclean \
	mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
	uninstall-am uninstall-dist_pkgdataDATA

.PRECIOUS: Makefile


# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

examples/example.ldap

deleted100644 → 0
+0 −56
Original line number Original line Diff line number Diff line
##
## configuration file for openldap backups 
##
## If the method is set to "slapcat", the LDIFs generated are
## suitable for use with slapadd. As the entries are in database
## order, not superior first order, they cannot be loaded with
## ldapadd without being reordered.
##

## backupdir (default /var/backups/ldap): the destination for the backups
# backupdir = /var/backups/ldap

## conf (default /etc/ldap/slapd.conf): the location of the slapd.conf file.
# conf = /etc/ldap/slapd.conf

## databases (default all): either a space separated list of database
## numbers or prefixes, or the keyword 'all'.
# databases = all

## compress (default yes): if set to yes, ldif exports are gzipped.
# compress = yes

## restart (default no): if set to yes, slapd is stopped before backups are
## performed, and then started again after they have finished, this is necessary
## if your backend is ldbm and your method is slapcat, but unnecessary otherwise.
# restart = no

## method (default ldapsearch): either 'ldapsearch' or 'slapcat' 
## ldapsearch is the safer method to do backups, but is slow, slapcat
## is much faster, but should not be done on an ldbm backend unless you have
## restart set to yes
## NOTE: with the ldapsearch method passwordfile and binddn need to be set
# method = ldapsearch

## passwordfile (no default): this should be set to the file that contains 
## your ldap password, this is required for ldapsearch and not needed for slapcat
## this file should have no newlines in it, echo -n "password" > passfile works.
## NOTE: be sure to set the permissions on your password file appropriately
## (hint: world readable is not appropriate)
# passwordfile = 

## binddn (no default): set this to the DN of the user that the ldapsearch binds
## to, not needed for slapcat
# binddn =

## ldaphost (no default): set this to your ldap host if it is not local
# ldaphost =

## ssl (default yes): if set to 'yes' then SSL connection will be
## attempted to your ldaphost by using ldaps://
# ssl = yes

## tls (default no): if set to 'yes' then TLS connection will be
## attempted to your ldaphost by using TLS extended operations (RFC2246,
## RFC2830)
# tls = no

handlers/Makefile.in

0 → 100644
+552 −0
Original line number Original line Diff line number Diff line
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@

# Copyright (C) 1994-2014 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@

VPATH = @srcdir@
am__is_gnu_make = { \
  if test -z '$(MAKELEVEL)'; then \
    false; \
  elif test -n '$(MAKE_HOST)'; then \
    true; \
  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
    true; \
  else \
    false; \
  fi; \
}
am__make_running_with_option = \
  case $${target_option-} in \
      ?) ;; \
      *) echo "am__make_running_with_option: internal error: invalid" \
              "target option '$${target_option-}' specified" >&2; \
         exit 1;; \
  esac; \
  has_opt=no; \
  sane_makeflags=$$MAKEFLAGS; \
  if $(am__is_gnu_make); then \
    sane_makeflags=$$MFLAGS; \
  else \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        bs=\\; \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
    esac; \
  fi; \
  skip_next=no; \
  strip_trailopt () \
  { \
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
  }; \
  for flg in $$sane_makeflags; do \
    test $$skip_next = yes && { skip_next=no; continue; }; \
    case $$flg in \
      *=*|--*) continue;; \
        -*I) strip_trailopt 'I'; skip_next=yes;; \
      -*I?*) strip_trailopt 'I';; \
        -*O) strip_trailopt 'O'; skip_next=yes;; \
      -*O?*) strip_trailopt 'O';; \
        -*l) strip_trailopt 'l'; skip_next=yes;; \
      -*l?*) strip_trailopt 'l';; \
      -[dEDm]) skip_next=yes;; \
      -[JT]) skip_next=yes;; \
    esac; \
    case $$flg in \
      *$$target_option*) has_opt=yes; break;; \
    esac; \
  done; \
  test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
subdir = handlers
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN     " $@;
am__v_GEN_1 = 
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
  for p in $$list; do echo "$$p $$p"; done | \
  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
    if (++n[$$2] == $(am__install_max)) \
      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
    END { for (dir in files) print dir, files[dir] }'
am__base_list = \
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
  test -z "$$files" \
    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
         $(am__cd) "$$dir" && rm -f $$files; }; \
  }
am__installdirs = "$(DESTDIR)$(pkgdatadir)"
DATA = $(pkgdata_DATA)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASH = @BASH@
CFGDIR = @CFGDIR@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
HAVE_RPM = @HAVE_RPM@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MKTEMP = @MKTEMP@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STAT = @STAT@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_cv_have_rpm = @ac_cv_have_rpm@
am__leading_dot = @am__leading_dot@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
HANDLERS = borg borg.helper dup dup.helper maildir makecd	\
         makecd.helper mysql mysql.helper pgsql pgsql.helper rdiff	\
         rdiff.helper rsync sh svn sys sys.helper trac tar tar.helper

DIST_HANDLERS = borg.in borg.helper.in dup.in dup.helper.in maildir.in makecd.in	\
         makecd.helper.in mysql.in mysql.helper.in pgsql.in pgsql.helper.in rdiff.in	\
         rdiff.helper.in rsync.in sh.in svn.in sys.in sys.helper.in trac.in tar.in tar.helper.in wget

CLEANFILES = $(HANDLERS)
EXTRA_DIST = Makefile.am $(DIST_HANDLERS)
edit = sed \
    -e "s,@BASH\@,$(BASH),g" \
    -e "s,@AWK\@,$(AWK),g" \
    -e "s,@SED\@,$(SED),g" 

pkgdata_DATA = $(HANDLERS)
all: all-am

.SUFFIXES:
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign handlers/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign handlers/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure:  $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-pkgdataDATA: $(pkgdata_DATA)
	@$(NORMAL_INSTALL)
	@list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
	if test -n "$$list"; then \
	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \
	  $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \
	fi; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \
	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \
	done

uninstall-pkgdataDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
tags TAGS:

ctags CTAGS:

cscope cscopelist:


distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
	for dir in "$(DESTDIR)$(pkgdatadir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-am
install-strip:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
mostlyclean-generic:

clean-generic:
	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-am

clean-am: clean-generic mostlyclean-am

distclean: distclean-am
	-rm -f Makefile
distclean-am: clean-am distclean-generic

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am: install-pkgdataDATA

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-generic

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am: uninstall-pkgdataDATA

.MAKE: install-am install-strip

.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
	ctags-am distclean distclean-generic distdir dvi dvi-am html \
	html-am info info-am install install-am install-data \
	install-data-am install-dvi install-dvi-am install-exec \
	install-exec-am install-html install-html-am install-info \
	install-info-am install-man install-pdf install-pdf-am \
	install-pkgdataDATA install-ps install-ps-am install-strip \
	installcheck installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
	pdf-am ps ps-am tags-am uninstall uninstall-am \
	uninstall-pkgdataDATA

.PRECIOUS: Makefile


borg: $(srcdir)/borg.in
	rm -f borg
	$(edit) $(srcdir)/borg.in > borg

borg.helper: $(srcdir)/borg.helper.in
	rm -f borg.helper
	$(edit) $(srcdir)/borg.helper.in > borg.helper

dup: $(srcdir)/dup.in
	rm -f dup
	$(edit) $(srcdir)/dup.in > dup

dup.helper: $(srcdir)/dup.helper.in
	rm -f dup.helper
	$(edit) $(srcdir)/dup.helper.in > dup.helper

ldap: $(srcdir)/ldap.in
	rm -f ldap
	$(edit) $(srcdir)/ldap.in > ldap

ldap.helper: $(srcdir)/ldap.helper.in
	rm -f ldap.helper
	$(edit) $(srcdir)/ldap.helper.in > ldap.helper

maildir: $(srcdir)/maildir.in
	rm -f maildir
	$(edit) $(srcdir)/maildir.in > maildir

makecd: $(srcdir)/makecd.in
	rm -f makecd
	$(edit) $(srcdir)/makecd.in > makecd

makecd.helper: $(srcdir)/makecd.helper.in
	rm -f makecd.helper
	$(edit) $(srcdir)/makecd.helper.in > makecd.helper

mysql: $(srcdir)/mysql.in
	rm -f mysql
	$(edit) $(srcdir)/mysql.in > mysql

mysql.helper: $(srcdir)/mysql.helper.in
	rm -f mysql.helper
	$(edit) $(srcdir)/mysql.helper.in > mysql.helper

pgsql: $(srcdir)/pgsql.in
	rm -f pgsql
	$(edit) $(srcdir)/pgsql.in > pgsql

pgsql.helper: $(srcdir)/pgsql.helper.in
	rm -f pgsql.helper
	$(edit) $(srcdir)/pgsql.helper.in > pgsql.helper

rdiff: $(srcdir)/rdiff.in
	rm -f rdiff
	$(edit) $(srcdir)/rdiff.in > rdiff

rdiff.helper: $(srcdir)/rdiff.helper.in
	rm -f rdiff.helper
	$(edit) $(srcdir)/rdiff.helper.in > rdiff.helper

rsync: $(srcdir)/rsync.in
	rm -f rsync 
	$(edit) $(srcdir)/rsync.in > rsync

sh: $(srcdir)/sh.in
	rm -f sh
	$(edit) $(srcdir)/sh.in > sh

svn: $(srcdir)/svn.in
	rm -f svn
	$(edit) $(srcdir)/svn.in > svn

sys: $(srcdir)/sys.in
	rm -f sys
	$(edit) $(srcdir)/sys.in > sys

sys.helper: $(srcdir)/sys.helper.in
	rm -f sys.helper
	$(edit) $(srcdir)/sys.helper.in > sys.helper

trac: $(srcdir)/trac.in
	rm -f trac
	$(edit) $(srcdir)/trac.in > trac

tar: $(srcdir)/tar.in
	rm -f tar
	$(edit) $(srcdir)/tar.in > tar

tar.helper: $(srcdir)/tar.helper.in
	rm -f tar.helper
	$(edit) $(srcdir)/tar.helper.in > tar.helper

# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

handlers/dsync.in

deleted100644 → 0
+0 −345
Original line number Original line Diff line number Diff line
# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
# vim: set filetype=sh sw=3 sts=3 expandtab autoindent:

###############################################################
#
#  This handler uses dovecot (version 2 or later) dsync backup
#  to backup mail to a remote server.
#
#  Source and destination directories are typically configured
#  via the dovecot configuration, but can be overridden using
#  the settings here.
#
#  if the configuration is setup to have keepdaily at 3,
#  keepweekly is 2, and keepmonthly is 1, then each user's
#  maildir backup snapshot directory will contain these files:
#    daily.1
#    daily.2
#    daily.3
#    weekly.1
#    weekly.2
#    monthly.1
#
#  The basic algorithm is to dsync each user individually,
#  and to use hard links for retaining historical data.
#
#  For the backup rotation to work, destuser must be able to run
#  arbitrary bash commands on the desthost.
#
#  If 'remove' is set to 'yes' (default), then any mail directory 
#  which is deleted from the source will be moved to a "deleted"
#  directory in the destination. It is up to you to periodically 
#  remove this directory or old maildirs in it.
#
#  Limitations:
#    . because we are not dynamically looking up anything with
#      dovecot's userdb, we expect all data to be under the same 
#      tree on both the source and destination
#    
#    . we are assuming a backup to a backup server, so the 
#      destination host should have its dovecot mail_location 
#      configured to put the mail into
#      $stripped_destdir/$letter/$user/$current_backup
#
##############################################################

getconf rotate yes
getconf remove yes
getconf backup yes

getconf keepdaily 5
getconf keepweekly 3
getconf keepmonthly 1

getconf srcconffile
getconf destconffile
getconf srcdir 
getconf destdir
getconf current_backup current_backup
getconf desthost
getconf destport 22
getconf destuser
getconf destid_file /root/.ssh/id_rsa
getconf sshoptions

failedcount=0

# strip leading mailbox specifier (eg. mdbox:; maildir:, etc)
stripped_destdir=${destdir/*:/}
stripped_srcdir=${srcdir/*:/}

# strip trailing /
destdir=${destdir%/}
srcdir=${srcdir%/}

if [ -n "$srcconffile" ]; then
   srcconffile="-c $srcconffile"
fi

if [ -n "$destconffile" ]; then
   destconffile="-c $destconffile"
fi

[ -d $stripped_srcdir ] || fatal "source directory $srcdir doesn't exist"


##################################################################
### FUNCTIONS

function do_user() {
   local user=$1
   local btype=$2
   local letter=${user:0:1} 
   local target="$stripped_destdir/$letter/$user/$btype.1"
   local failedcount=0
   local ret=0

   debug "syncing"
   while [ $failedcount -lt 3 ]; do
      debug $DSYNC $testflags -u $user backup $srcconffile \
         ssh -i $destid_file $destuser@$desthost $DSYNC $destconffile \
         -u $user 2>&1
      ret=`$DSYNC $testflags -u $user backup $srcconffile \
         ssh -i $destid_file $destuser@$desthost $DSYNC $destconffile \
         -u $user 2>&1`
      ret=$?
      if [ $ret == 2 ]; then
         # dsync needs to be run again
         let "failedcount = failedcount + 1"
      elif [ $ret == 0 ]; then
         # things worked, so we break out of the loop
         break
         ssh -o PasswordAuthentication=no $desthost -l $destuser -i $destid_file $sshoptions "date +%c%n%s > $stripped_destdir/$letter/$user/$btype.1/created"
      elif [ $ret != 0 ]; then
         # things did not work in a good way, report it and try again
         warning "dsync $user failed"
         warning "  returned: $ret"
         let "failedcount = failedcount + 1"
      fi

      if [ $failedcount -ge 3 ]; then
         warning "dsync failed 3 times for this user -- something is not working right. bailing out."
      fi
   done
}

# remove any maildirs from backup which might have been deleted
# and add new ones which have just been created.
# (actually, it just moved them to the directory "deleted")

function do_remove() {
   local tmp1=`maketemp dsync-tmp-file`
   local tmp2=`maketemp dsync-tmp-file`

   ssh -p $destport -i $destid_file $sshoptions $destuser@$desthost mkdir -p "${stripped_destdir}/deleted"
      cd "$stripped_srcdir"
      for userdir in `ls -d1 */`; do
         ls -1 "$stripped_srcdir/$userdir" | sort > $tmp1
         ssh -p $destport -i $destid_file $sshoptions $destuser@$desthost ls -1 "$stripped_destdir/$userdir" | sort > $tmp2
      for deluser in `join -v 2 $tmp1 $tmp2`; do
         [ "$deluser" != "" ] || continue
         info "removing $destuser@$desthost:$stripped_destdir/$userdir$deluser/"
         ssh -p $destport -i $destid_file $sshoptions $destuser@$desthost mv "$stripped_destdir/$userdir$deluser/" "$stripped_destdir/deleted"
         ssh -p $destport -i $destid_file $sshoptions $destuser@$desthost "date +%c%n%s > '$stripped_destdir/deleted/$deluser/deleted_on'"
      done
   done
   rm $tmp1
   rm $tmp2
}

function do_rotate() {
   [ "$rotate" == "yes" ] || return;
   local user=$1
   local letter=${user:0:1}
   local backuproot="$stripped_destdir/$letter/$user"
(
   ssh -T -o PasswordAuthentication=no $desthost -l $destuser -i $destid_file $sshoptions <<EOF
##### BEGIN REMOTE SCRIPT #####
   seconds_daily=86400
   seconds_weekly=604800
   seconds_monthly=2628000
   keepdaily=$keepdaily
   keepweekly=$keepweekly
   keepmonthly=$keepmonthly
   now=\`date +%s\`

   if [ ! -d "$backuproot" ]; then
      echo "Debug: skipping rotate of $user. $backuproot doesn't exist."
      exit
   fi

   for rottype in daily weekly monthly; do
      seconds=\$((seconds_\${rottype}))

      dir="$backuproot/\$rottype"
      if [ ! -d \$dir.1 ]; then
         echo "Debug: \$dir.1 does not exist, skipping."
         continue 1
      fi

      # Rotate the current list of backups, if we can.
      oldest=\`find $backuproot -maxdepth 1 -type d -name \$rottype'.*' | @SED@ 's/^.*\.//' | sort -n | tail -1\`
      #echo "Debug: oldest \$oldest"
      [ "\$oldest" == "" ] && oldest=0
      for (( i=\$oldest; i > 0; i-- )); do
         if [ -d \$dir.\$i ]; then
            if [ -f \$dir.\$i/created ]; then
               created=\`tail -1 \$dir.\$i/created\`
            else
               created=0
            fi
            cutoff_time=\$(( now - (seconds*(i-1)) ))
            if [ ! \$created -gt \$cutoff_time ]; then
               next=\$(( i + 1 ))
               if [ ! -d \$dir.\$next ]; then
                  echo "Debug: \$rottype.\$i --> \$rottype.\$next"
                  mv \$dir.\$i \$dir.\$next
                  date +%c%n%s > \$dir.\$next/rotated
               else
                  echo "Debug: skipping rotation of \$dir.\$i because \$dir.\$next already exists."
               fi
            else
               echo "Debug: skipping rotation of \$dir.\$i because it was created" \$(( (now-created)/86400)) "days ago ("\$(( (now-cutoff_time)/86400))" needed)."
            fi
         fi
      done     
   done

   max=\$((keepdaily+1))
   if [ \( \$keepweekly -gt 0 -a -d $backuproot/daily.\$max \) -a ! -d $backuproot/weekly.1 ]; then
      echo "Debug: daily.\$max --> weekly.1"
      mv $backuproot/daily.\$max $backuproot/weekly.1
      date +%c%n%s > $backuproot/weekly.1/rotated
   fi

   max=\$((keepweekly+1))
   if [ \( \$keepmonthly -gt 0 -a -d $backuproot/weekly.\$max \) -a ! -d $backuproot/monthly.1 ]; then
      echo "Debug: weekly.\$max --> monthly.1"
      mv $backuproot/weekly.\$max $backuproot/monthly.1
      date +%c%n%s > $backuproot/monthly.1/rotated
   fi

   for rottype in daily weekly monthly; do
      max=\$((keep\${rottype}+1))
      dir="$backuproot/\$rottype"
      oldest=\`find $backuproot -maxdepth 1 -type d -name \$rottype'.*' | @SED@ 's/^.*\.//' | sort -n | tail -1\`
      [ "\$oldest" == "" ] && oldest=0
      # if we've rotated the last backup off the stack, remove it.
      for (( i=\$oldest; i >= \$max; i-- )); do
         if [ -d \$dir.\$i ]; then
            if [ -d $backuproot/rotate.tmp ]; then
               echo "Debug: removing rotate.tmp"
               rm -rf $backuproot/rotate.tmp
            fi
            echo "Debug: moving \$rottype.\$i to rotate.tmp"
            mv \$dir.\$i $backuproot/rotate.tmp
         fi
      done
   done
####### END REMOTE SCRIPT #######
EOF
) | (while read a; do passthru $a; done)

}


function setup_remote_dirs() {
   local user=$1
   local backuptype=$2
   local letter=${user:0:1}
   local dir="$stripped_destdir/$letter/$user/$backuptype"
   local tmpdir="$stripped_destdir/$letter/$user/rotate.tmp"
(
   ssh -T -o PasswordAuthentication=no $desthost -l $destuser -i $destid_file $sshoptions <<EOF
      if [ ! -d $stripped_destdir ]; then
         echo "Fatal: Destination directory $stripped_destdir does not exist on host $desthost."
         exit 1
      elif [ -d $dir.1 ]; then
         if [ -f $dir.1/created ]; then
            echo "Warning: $dir.1 already exists. Overwriting contents."
         else
            echo "Warning: we seem to be resuming a partially written $dir.1"
         fi
      else
         if [ -d $tmpdir ]; then
            mv $tmpdir $dir.1
            if [ \$? == 1 ]; then
               echo "Fatal: could not mv $stripped_destdir/rotate.tmp $dir.1 on host $desthost"
               exit 1
            fi
         else
            mkdir --parents $dir.1
            if [ \$? == 1 ]; then
               echo "Fatal: could not create directory $dir.1 on host $desthost"
               exit 1
            fi
         fi
         if [ -d $dir.2 ]; then
            echo "Debug: update links $backuptype.2 --> $backuptype.1"
            cp -alf $dir.2/. $dir.1
            #if [ \$? == 1 ]; then
            #   echo "Fatal: could not create hard links to $dir.1 on host $desthost"
            #   exit 1
            #fi
         fi
      fi
      [ -f $dir.1/created ] && rm $dir.1/created
      [ -f $dir.1/rotated ] && rm $dir.1/rotated
      exit 0
EOF
) | (while read a; do passthru $a; done)

   if [ $? == 1 ]; then exit; fi
}

###
##################################################################

# see if we can login
debug "ssh -o PasswordAuthentication=no $desthost -l $destuser -i $destid_file $sshoptions 'echo -n 1'"
if [ ! $test ]; then
   result=`ssh -o PasswordAuthentication=no $desthost -l $destuser -i $destid_file $sshoptions 'echo -n 1' 2>&1`
   if [ "$result" != "1" ]; then
      fatal "Can't connect to $desthost as $destuser using $destid_file."
   fi
fi

## SANITY CHECKS ##
status=`ssh -p $destport -i $destid_file $sshoptions $destuser@$desthost "[ -d \"$stripped_destdir\" ] && echo 'ok'"`
if [ "$status" != "ok" ]; then
   fatal "Destination directory $stripped_destdir doesn't exist!"
   exit
fi

### REMOVE OLD MAILDIRS ###

if [ "$remove" == "yes" ]; then
   do_remove
fi

### MAKE BACKUPS ###

if [ "$backup" == "yes" ]; then
   if [ $keepdaily -gt 0 ]; then btype=daily
   elif [ $keepweekly -gt 0 ]; then btype=weekly
   elif [ $keepmonthly -gt 0 ]; then btype=monthly
   else fatal "keeping no backups"; fi

   if [ "$testuser" != "" ]; then
      cd "$stripped_srcdir/${user:0:1}"
      do_rotate $testuser
      setup_remote_dirs $testuser $btype
      do_user $testuser $btype
   else
      [ -d "$stripped_srcdir" ] || fatal "directory $stripped_srcdir not found."
      for user in `@DOVEADM@ user \* | cut -d@ -f1`
      do
         debug $user
         [ "$user" != "" ] || continue
         do_rotate $user
         setup_remote_dirs $user $btype
         do_user $user $btype
      done
   fi
fi