Am 07.04.2016 um 20:11 schrieb Florian Lindner:
> Hello,
> I want to have a unit that monitors a path and commits automatically to
> git whenever something changes. It usually works, like that:
> 
> # cat git-commit@.service
> [Unit]
> Description=Automatic commit for %f
> 
> [Service]
> Type = oneshot
> Nice = 10
> 
> # git returns 1 if there is nothing to commit
> SuccessExitStatus=1
> 
> WorkingDirectory = %f
> ExecStart = /usr/bin/git add --all .
> ExecStart = /usr/bin/git commit -a -m "Automatic commit."
> 
> 
> # cat git-commit@.path 
> [Unit]
> Description = Path monitor for %f
> 
> [Path]
> PathChanged = %f
> 
> [Install]
> WantedBy = multi-user.target
> 
> It basically works but has two issues:
> 
> 1) The path unit does not seem to monitor the path recursively, therefore I 
> don't get a commit when a file in a subdirectory changes
> 
> 2)Sometimes the commit fails, like when an application pushes files to 
> quickly into the directory:
> 
> Failed to start Automatic commit for /etc.
> git-commit@etc.service: Start request repeated too quickly
> 
> or when files vanish before they are commited.
> 
> This is usally not a problem, and I just want to restart it (after a short 
> delay) Setting Restart=on-failure on a Type=oneshort unit does not work 
> git-commit@etc.service: 
> 
> Service has Restart= setting other than no, which isn't allowed for 
> Type=oneshot services. Refusing.
> 
> Any idea how to address these two issues?
> 
> Thanks!
> Florian

Hi Florian,

for this I normally use https://github.com/axkibe/lsyncd, which can do
this recursivly. In my use case I sign packages this way after building.

Regards
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to