[Xfce4-commits] <xfce-server-scripts:master> Add --dump and --resolve-groups options to xfce-manage-git-permissions.

Jannis Pohlmann jannis at xfce.org
Thu Sep 3 21:40:01 CEST 2009


Updating branch refs/heads/master
         to 106524177736b4343aab51a2a2d97774d8656b79 (commit)
       from d8ca1c31ecb8c3bbfc1c9c108277eaae4e22cf92 (commit)

commit 106524177736b4343aab51a2a2d97774d8656b79
Author: Jannis Pohlmann <jannis at xfce.org>
Date:   Thu Sep 3 19:32:26 2009 +0000

    Add --dump and --resolve-groups options to xfce-manage-git-permissions.

 bin/xfce-manage-git-permissions |   38 ++++++++++++++++++++++++++++++++++++++
 xfce-server-scripts.gemspec     |    2 +-
 2 files changed, 39 insertions(+), 1 deletions(-)

diff --git a/bin/xfce-manage-git-permissions b/bin/xfce-manage-git-permissions
index 1a00185..449a415 100755
--- a/bin/xfce-manage-git-permissions
+++ b/bin/xfce-manage-git-permissions
@@ -11,6 +11,8 @@ include Xfce::ServerScripts::GitPermissions
 
 options = OpenStruct.new
 options.config_dir = '/etc/xfce-server-files/git-permissions'
+options.dump = false
+options.resolve_groups = false
 
 User.load do 
   users = []
@@ -138,6 +140,14 @@ ARGV.options do |opts|
     options.remove_from_group = User.new(name) if options.remove_from_group.nil?
   end
 
+  opts.on('-d', '--dump', 'Dumps all permissions in a readable manner') do 
+    options.dump = true
+  end
+
+  opts.on('-s', '--resolve-groups', 'Resolves groups and prints their users instead') do
+    options.resolve_groups = true
+  end
+
 end.parse!
 
 if ARGV.size >= 1
@@ -146,6 +156,34 @@ if ARGV.size >= 1
   repository = Repository.new(name, []) if repository.nil?
 end
 
+if options.dump
+  puts "Users:"
+  for user in User.find_all
+    puts "user #{user.username}"
+  end
+  puts
+
+  puts "Groups:"
+  for group in Group.find_all 
+    puts "group #{group.name}: #{group.users.collect do |u| u.username end.join(', ')}"
+  end
+  puts
+
+  puts "Repositories:"
+  for repository in Repository.find_all 
+    if options.resolve_groups
+      users = repository.users.collect do |u| u.username end
+      users += repository.groups.collect do |g| g.users.collect do |u| u.username end end
+      users.flatten!
+    else
+      users = repository.users.collect do |u| u.username end 
+      users += repository.groups.collect do |g| "@#{g.name}" end
+    end
+
+    puts "repository #{repository.name}: #{users.join(', ')}"
+  end
+end
+
 if options.grant_permissions
   if repository.nil?
     puts ARGV.options
diff --git a/xfce-server-scripts.gemspec b/xfce-server-scripts.gemspec
index 2337c92..c8f187d 100644
--- a/xfce-server-scripts.gemspec
+++ b/xfce-server-scripts.gemspec
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
 
   s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
   s.authors = ["Jannis Pohlmann"]
-  s.date = %q{2009-08-09}
+  s.date = %q{2009-09-03}
   s.email = %q{jannis at xfce.org}
   s.executables = ["xfce-check-git-commit-permissions", "xfce-manage-git-permissions"]
   s.files = [



More information about the Xfce4-commits mailing list