diff options
author | Russ Allbery <rra@stanford.edu> | 2010-05-18 16:44:38 -0700 |
---|---|---|
committer | Russ Allbery <rra@stanford.edu> | 2010-05-18 16:45:04 -0700 |
commit | 4dbf126b079d87639d0a463770c3e72b5b53d5d1 (patch) | |
tree | 863b4d276ef6a327217272f558342931bea73e3a /server/wallet-report | |
parent | 7bed6b6110af7532fc4a49cdb425f7f668e17c21 (diff) |
Add acls duplicate report
Add an acls duplicate report to wallet-report and Wallet::Report,
returning sets of ACLs that have exactly the same entries.
Diffstat (limited to 'server/wallet-report')
-rwxr-xr-x | server/wallet-report | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/server/wallet-report b/server/wallet-report index 28d5b9a..466fe46 100755 --- a/server/wallet-report +++ b/server/wallet-report @@ -32,8 +32,14 @@ sub command { if (!@acls and $report->error) { die $report->error, "\n"; } - for my $acl (sort { $$a[1] cmp $$b[1] } @acls) { - print "$$acl[1] (ACL ID: $$acl[0])\n"; + if (@args && $args[0] eq 'duplicate') { + for my $group (@acls) { + print join (' ', @$group), "\n"; + } + } else { + for my $acl (sort { $$a[1] cmp $$b[1] } @acls) { + print "$$acl[1] (ACL ID: $$acl[0])\n"; + } } } elsif ($command eq 'audit') { die "too many arguments to audit\n" if @args > 2; @@ -110,13 +116,16 @@ B<wallet-report> takes no traditional options. =item acls +=item acls duplicate + =item acls empty =item acls entry <scheme> <identifier> =item acls unused -Returns a list of ACLs in the database. ACLs will be listed in the form: +Returns a list of ACLs in the database. Except for the C<duplicate> +report, ACLs will be listed in the form: <name> (ACL ID: <id>) @@ -124,6 +133,10 @@ where <name> is the human-readable name and <id> is the numeric ID. The numeric ID is what's used internally by the wallet system. There will be one line per ACL. +For the C<duplicate> report, the output will instead be one duplicate set +per line. This will be a set of ACLs that all have the same entries. +Only the names will be given, separated by spaces. + If no search type is given, all the ACLs in the database will be returned. If a search type (and possible search arguments) are given, then the ACLs will be limited to those that match the search. @@ -132,6 +145,12 @@ The currently supported ACL search types are: =over 4 +=item acls duplicate + +Returns all sets of ACLs that are duplicates, meaning that they contain +exactly the same entries. Each line will be the names of the ACLs in a +set of duplicates, separated by spaces. + =item acls empty Returns all ACLs which have no entries, generally so that abandoned ACLs |