[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