#!/usr/bin/perl -w use esmith::Build::CreateLinks qw(:all); # our event specific for updating with yum without reboot $event = 'smeserver-git-update'; #add here the path to your templates needed to expand #see the /etc/systemd/system-preset/49-koozali.preset should be present for systemd integration on all you yum update event foreach my $file (qw( /etc/systemd/system-preset/49-koozali.preset /etc/httpd/conf/httpd.conf )) { templates2events( $file, $event ); } #action needed in case we have a systemd unit event_link('systemd-default', $event, '10'); event_link('systemd-reload', $event, '50'); #action specific to this package #event_link('action', $event, '30'); #services we need to restart safe_symlink('restart',"root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); #and Server Manager panel link #panel_link('somefunction', 'manager'); use File::Basename; # Overview of Events, Actions, Template & Services # ================================================ # git-create # ---------- # git-modify # ---------- # git-delete # ---------- # git-repository-create # --------------------- # git-repository-modify # --------------------- # git-repository-delete # --------------------- # user-delete # ----------- # group-modify # ------------ # group-delete # ------------ # domain-modify # ------------- # The domain/server name is used in the GitWeb view. # domain-delete # ------------- # If a domain is deleted, we need to check if the deleted domain may have been the in use for Git. # Git Contrib Modified or Deleted # ------------------------------- for my $event ( qw( git-modify git-delete ) ) { safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); templates2events("/etc/httpd/conf/httpd.conf", $event) } # Git Repository Create / Modify # ------------------------------ # Repository setting created or updated. regenerate the httpd.conf file and signal the # server restart. for my $event ( qw( git-repository-create git-repository-modify ) ) { event_link("git-repository-create-modify", $event, "05"); templates2events("/etc/httpd/conf/httpd.conf", $event); safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); } # Git Repository Delete # --------------------- # Perform the repository delete action and then regenerate the httpd.conf file. for my $event (qw( git-repository-delete )) { event_link("git-repository-delete", $event, "05"); safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); templates2events("/etc/httpd/conf/httpd.conf", $event) } # User Delete / Group Delete / Group Modify # ----------------------------------------- # For either Users or Groups being deleted or Groups being modified, we need # to go through all the git repositiories and update the UserRead, UserWrite, # GroupRead and GroupWrite entries. We then need to expand the httpd.conf # template to ensure that the expanded user names there are still the right # ones and also we need to update the git repositories themselves to update # the mailing list for each repository. for my $event ( qw( user-delete group-delete group-modify ) ) { event_link("git-delete-user-or-group-from-access-list", $event, "05"); safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); templates2events("/etc/httpd/conf/httpd.conf", $event) } panel_link('git', 'manager');