#!/usr/bin/perl -w

use strict;
use warnings;
use Getopt::Long;

use Pod::Usage;
use ALTLinux::ACL;

my $verbose=0;
my $help=0;
my $resolve_group=0;

my $result = GetOptions (
    @ALTLinux::ACL::LONGOPT,
    "help"  => \$help,
    'quiet'=> sub {$verbose=0},
    "verbose+"  => \$verbose,
    "resolve-group"  => \$resolve_group,
);

if ($help or not @ARGV or @ARGV>1) {
    pod2usage();
}

my $acl = ALTLinux::ACL->new();
my $name=shift @ARGV;
my @acl_list=$acl->acl($name);
warn "$name: the package has no acl\n" unless @acl_list;
my $default_leader='@nobody';
my $leader=$acl_list[0];
print STDERR "leader=$leader resolve_group=$resolve_group is_group=", $acl->is_group($leader),"\n" if $verbose>1;
if ($resolve_group and defined($leader) and $acl->is_group($leader)) {
    $leader=$acl->group_leader($leader);
}
print $leader ? $leader : $default_leader,"\n";

=head1	NAME

altlinux-acl-get-leader - print altlinux acl leader of the given name.

=head1	SYNOPSIS

B<altlinux-acl-get-leader>
[B<-h|--help>]
[B<-q|--quiet>]
[B<-v|--verbose>]
[B<-r|--resolve-group>]
I<name>

=head1	DESCRIPTION

B<altlinux-acl-get-leader> 
Prints altlinux acl leader of the given name.
If leader not found, prints nobody.


=head1	OPTIONS

=over

=item	B<-h, --help>

Display this help and exit.

=item	B<-r, --resolve-group>

Replace group by group leader.

=item	B<-v, --verbose>, B<-q, --quiet>

Verbosity level. Multiple -v increase the verbosity level, -q sets it to 0.

=back

=head1	AUTHOR

Written by Igor Vlasenko <viy@altlinux.org>.

=head1	COPYING

Copyright (c) 2009 Igor Vlasenko, ALT Linux Team.

This is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.

=cut
