[PATCH 2/2] Fix the check-perms.py script/cron

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



---
 roles/git/checks/files/check-perms.py | 41 ++++++++++++++++++++---------------
 1 file changed, 24 insertions(+), 17 deletions(-)

diff --git a/roles/git/checks/files/check-perms.py b/roles/git/checks/files/check-perms.py
index 7e6501f..8fd8516 100755
--- a/roles/git/checks/files/check-perms.py
+++ b/roles/git/checks/files/check-perms.py
@@ -226,19 +226,25 @@ def set_post_receive_hook_version3(gitdir, fix=False):
         error('%s:  %s is not a directory.' % (gitdir, dest_prefix))
         return False
 
+    # Remove the old hooks
+    hooks = [
+        os.path.join(dest_prefix, 'post-receive-email'),
+        os.path.join(dest_prefix, 'post-receive-fedmsg'),
+        os.path.join(dest_prefix, 'post-receive-alternativearch'),
+    ]
+
+    for hook in hooks:
+        if os.path.exists(hook):
+            if not fix:
+                error('%s should be removed' % hook)
+            else:
+                os.unlink(hook)
+
     # Symlink mail notification and fedmsg scripts to post-receive hook
     scripts = {
-        '/usr/share/git-core/mail-hooks/gnome-post-receive-email':
-            os.path.join(dest_prefix, 'post-receive-email'),
-        '/usr/share/git-core/post-receive-fedmsg':
-            os.path.join(dest_prefix, 'post-receive-fedmsg'),
-        '/usr/share/git-core/post-receive-alternativearch':
-            os.path.join(dest_prefix, 'post-receive-alternativearch'),
-
         # This one kicks off all the others.
         '/usr/share/git-core/post-receive-chained':
             os.path.join(gitdir, 'hooks', 'post-receive'),
-
     }
 
     for script, hook in scripts.items():
@@ -250,19 +256,20 @@ def set_post_receive_hook_version3(gitdir, fix=False):
                 error('%s: Hook (%s) not installed.' % (gitdir, hook))
                 return False
 
-        if os.path.exists(hook):
+        if not os.path.islink(hook):
+            if os.path.exists(hook):
+                try:
+                    os.remove(hook)
+                except Exception, e:
+                    errstr = hasattr(e, 'strerror') and e.strerror or e
+                    error('%s: Error removing %s: %s' % (gitdir, hook, errstr))
+                    return False
             try:
-                os.remove(hook)
+                os.symlink(script, hook)
             except Exception, e:
                 errstr = hasattr(e, 'strerror') and e.strerror or e
-                error('%s: Error removing %s: %s' % (gitdir, hook, errstr))
+                error('%s: Error creating %s symlink: %s' % (gitdir, hook, errstr))
                 return False
-        try:
-            os.symlink(script, hook)
-        except Exception, e:
-            errstr = hasattr(e, 'strerror') and e.strerror or e
-            error('%s: Error creating %s symlink: %s' % (gitdir, hook, errstr))
-            return False
 
     # We ran the gauntlet.
     return True
-- 
2.9.5
_______________________________________________
infrastructure mailing list -- infrastructure@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to infrastructure-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Development]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux