#!/usr/bin/perl

#    Copyright (C) 2011  Matthias Förste
#
#    This program 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 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#    Matthias Förste <foerste@schlittermann.de>

use strict;
use warnings;

use Ius::Dav::Htpasswd qw(mkpasswd readconfig useradd usage);

use Getopt::Long;
use Pod::Usage;

my ( $user, $expiry, $pass );

GetOptions(
    'u|user=s'   => \$user,
    'e|expiry=i' => \$expiry,
    'h|help'     => sub { usage( -exit => 0, -verbose => 1 ) },
    'm|man'      => sub {
        usage(
            -exit => 0,

            # "system('perldoc -V &>/dev/null')" appears shorter, but may not
            # do what you expect ( it still returns 0 on debian squeeze with
            # dash as system shell even if cannot find the command in $PATH)
            -noperldoc => system('perldoc -V >/dev/null 2>&1'),
            -verbose   => 2
        );
    },
  )
  and defined $user
  or usage;

$pass = useradd readconfig, $user, mkpasswd, $expiry;
print "$pass\n";
