diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2017-02-04 23:21:06 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2017-02-04 23:46:19 -0500 |
commit | 35750d39f0026ac744206eaaf311e749f9a0e4ad (patch) | |
tree | e67d320b35d081a2767c8b4cf1b85da46d078ac1 | |
parent | d570030d25ffba490837499d250587da1ac29dec (diff) |
Add a parabolaweb-reporead-rsync tool.
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | parabolaweb-reporead-rsync.in | 33 | ||||
-rw-r--r-- | parabolaweb-reporead-rsync.service.in | 8 | ||||
-rw-r--r-- | parabolaweb.conf | 5 |
4 files changed, 48 insertions, 0 deletions
@@ -25,9 +25,11 @@ include $(topsrcdir)/build-aux/Makefile.head.mk targets = \ $(sbindir)/parabolaweb-changepassword \ $(sbindir)/parabolaweb-reporead-inotify \ + $(sbindir)/parabolaweb-reporead-rsync \ $(sbindir)/parabolaweb-update \ $(pkglibexecdir)/parabolaweb-changepassword.real \ $(systemddir)/parabolaweb-reporead-inotify.service \ + $(systemddir)/parabolaweb-reporead-rsync.service \ $(uwsgidir)/parabolaweb.ini files.out.all = depends.txt $(filter-out $(files.src.src),$(notdir $(targets))) parabolaweb.conf diff --git a/parabolaweb-reporead-rsync.in b/parabolaweb-reporead-rsync.in new file mode 100644 index 0000000..f8f54a8 --- /dev/null +++ b/parabolaweb-reporead-rsync.in @@ -0,0 +1,33 @@ +#!/bin/bash -e + +# Copyright (c) 2012-2013, 2017 Luke Shumaker <lukeshu@sbcglobal.net> +# +# 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, see <http://www.gnu.org/licenses/>. + +. @pkgconffile@ + +[[ -e "${WEBDIR}/manage.py" ]] +[[ $# -eq 0 ]] + +sudo -u "${WEBUSER:-$USER}" rsync -v --no-motd -mrtlH --no-p \ + --include='*/' --include='*'.files,.tar.gz --exclude='*' \ + --delete-after "$RSYNCSRV" "$RSYNCDIR/" + +r=0 +find "$RSYNCDIR" -name '*.files.tar.gz' -not -name '.*' | while read -r filename; do + dir="${filename%/*.files.tar.gz}" + arch="${dir##*/}" + sudo -u "${WEBUSER:-$USER}" python2 "${WEBDIR}/manage.py" reporead "$arch" "$filename" || r=$? +done +exit $r diff --git a/parabolaweb-reporead-rsync.service.in b/parabolaweb-reporead-rsync.service.in new file mode 100644 index 0000000..dde3287 --- /dev/null +++ b/parabolaweb-reporead-rsync.service.in @@ -0,0 +1,8 @@ +[Unit] +Requires=postgresql.service +After=postgresql.service +Description=ParabolaWeb rsync reporead batch job + +[Service] +Type=oneshot +ExecStart=@sbindir@/parabolaweb-reporead-rsync diff --git a/parabolaweb.conf b/parabolaweb.conf index 07952a9..441e1d1 100644 --- a/parabolaweb.conf +++ b/parabolaweb.conf @@ -7,4 +7,9 @@ GITURL='git://projects.parabola.nu/parabolaweb.git#branch=master' RUNMAKE='pacman -Q parabolaweb-dev' +# reporead-inotify INOTIFYARGS=('/srv/repo/main/%(repo)s/os/%(arch)s/') + +# reporead-rsync +RSYNCSRV=rsync://repo.parabola.nu:875/repos/ +RSYNCDIR=/srv/http/www.parabola.nu/repo |