#! /usr/bin/perl
# 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 .
#
# Copyright (C) 2016 - 2017 Raphaƫl Gertz
# Best practice
use strict;
use warnings;
# Load Acme
use Acme;
# Load POSIX
use POSIX qw(EXIT_SUCCESS EXIT_FAILURE);
# Init debug
my $debug = 0;
# Init prod
my $prod = 0;
# Strip and enable debug
@ARGV = map { if ($_ eq '-d') { $debug = 1; (); } else { $_; } } @ARGV;
# Strip and enable prod
@ARGV = map { if ($_ eq '-p') { $prod = 1; (); } else { $_; } } @ARGV;
# Show usage
if (scalar(@ARGV) < 2) {
print "Usage: $0 user\@example.com www.example.com [example.com] [...]\n";
exit EXIT_FAILURE;
}
# Create new object
my $acme = Acme->new(shift @ARGV, $debug, $prod, @ARGV);
# Prepare environement
$acme->prepare();
# Generate required keys
$acme->genKeys();
# Generate csr
$acme->genCsr();
# Directory
$acme->directory();
# Register
$acme->register();
# Authorize
$acme->authorize();
# Issue
$acme->issue();
# Exit with success
exit EXIT_SUCCESS;