From 76cd49c6568bcf909f6ec31bfb8d6ed320e546bb Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Fri, 8 Apr 2016 23:28:46 -0400 Subject: Improve HttpProvisioner interface These still need to be renamed --- acme-certify.hs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'acme-certify.hs') diff --git a/acme-certify.hs b/acme-certify.hs index 951d290..84b7f85 100644 --- a/acme-certify.hs +++ b/acme-certify.hs @@ -13,9 +13,11 @@ module Main where import BasePrelude -import Network.ACME (Keys (..), WritableDir, canProvision, - certify, ensureWritableDir, - fileProvisioner, genReq, readKeys, ()) +import Network.ACME (HttpProvisioner', Keys (..), + canProvision, certify, + dispatchProvisioner', ensureWritableDir, + genReq, provisionViaFile, readKeys, + ()) import Network.ACME.Issuer (letsEncryptX1CrossSigned) import Network.URI import OpenSSL @@ -56,10 +58,8 @@ data CmdOpts = CmdOpts { optSkipProvisionCheck :: Bool } -data Provisioner = ProvisionDir WritableDir - data AcmeCertRequest = AcmeCertRequest { - acrDomains :: [(DomainName, Provisioner)], + acrDomains :: [(DomainName, HttpProvisioner')], acrSkipDH :: Bool, acrCertificateDir :: FilePath, acrUserKeys :: Keys @@ -131,7 +131,7 @@ go CmdOpts { .. } = do (`unless` error "Error: cannot provision files to web server via challenge directory") let req = AcmeCertRequest {..} - acrDomains = map (flip (,) (ProvisionDir challengeDir)) requestDomains + acrDomains = map (flip (,) (provisionViaFile challengeDir)) requestDomains acrSkipDH = optSkipDH acrUserKeys = keys acrCertificateDir = domainDir @@ -139,9 +139,8 @@ go CmdOpts { .. } = do go' :: URI -> URI -> Maybe EmailAddress -> X509 -> AcmeCertRequest -> IO (Either String ()) go' directoryUrl terms email issuerCert acr@AcmeCertRequest{..} = do - let domainKeyFile = acrCertificateDir "rsa.key" - let provision = fileProvisioner (fmap un . flip lookup acrDomains) - un (ProvisionDir w) = w + let domainKeyFile = acrCertificateDir "rsa.key" + let provision = dispatchProvisioner' acrDomains Just domainKeys <- getOrCreateKeys domainKeyFile dh <- saveDhParams acr -- cgit v1.2.3