fix: wildcard certificates names on Windows.

This commit is contained in:
Fernandez Ludovic 2019-04-25 21:22:33 +02:00
parent ac45aaac27
commit 1001ead866
3 changed files with 24 additions and 8 deletions

View File

@ -23,7 +23,7 @@ type FileInfo struct {
// Dump Dumps data to certificates. // Dump Dumps data to certificates.
func Dump(data *StoredData, baseConfig *BaseConfig) error { func Dump(data *StoredData, baseConfig *BaseConfig) error {
if baseConfig.Clean { if baseConfig.Clean {
err := clean(baseConfig.DumpPath) err := cleanDir(baseConfig.DumpPath)
if err != nil { if err != nil {
return err return err
} }
@ -61,10 +61,10 @@ func Dump(data *StoredData, baseConfig *BaseConfig) error {
} }
func writeCert(dumpPath string, cert *Certificate, info FileInfo, domainSubDir bool) error { func writeCert(dumpPath string, cert *Certificate, info FileInfo, domainSubDir bool) error {
certPath := filepath.Join(dumpPath, certsSubDir, cert.Domain.Main+info.Ext) certPath := filepath.Join(dumpPath, certsSubDir, safeName(cert.Domain.Main+info.Ext))
if domainSubDir { if domainSubDir {
certPath = filepath.Join(dumpPath, cert.Domain.Main, info.Name+info.Ext) certPath = filepath.Join(dumpPath, safeName(cert.Domain.Main), info.Name+info.Ext)
if err := os.MkdirAll(filepath.Join(dumpPath, cert.Domain.Main), 0755); err != nil { if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0755); err != nil {
return err return err
} }
} }
@ -73,10 +73,10 @@ func writeCert(dumpPath string, cert *Certificate, info FileInfo, domainSubDir b
} }
func writeKey(dumpPath string, cert *Certificate, info FileInfo, domainSubDir bool) error { func writeKey(dumpPath string, cert *Certificate, info FileInfo, domainSubDir bool) error {
keyPath := filepath.Join(dumpPath, keysSubDir, cert.Domain.Main+info.Ext) keyPath := filepath.Join(dumpPath, keysSubDir, safeName(cert.Domain.Main+info.Ext))
if domainSubDir { if domainSubDir {
keyPath = filepath.Join(dumpPath, cert.Domain.Main, info.Name+info.Ext) keyPath = filepath.Join(dumpPath, safeName(cert.Domain.Main), info.Name+info.Ext)
if err := os.MkdirAll(filepath.Join(dumpPath, cert.Domain.Main), 0755); err != nil { if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0755); err != nil {
return err return err
} }
} }
@ -104,7 +104,7 @@ func extractPEMPrivateKey(account *Account) []byte {
return pem.EncodeToMemory(block) return pem.EncodeToMemory(block)
} }
func clean(dumpPath string) error { func cleanDir(dumpPath string) error {
_, errExists := os.Stat(dumpPath) _, errExists := os.Stat(dumpPath)
if os.IsNotExist(errExists) { if os.IsNotExist(errExists) {
return nil return nil

7
dumper/filename.go Normal file
View File

@ -0,0 +1,7 @@
// +build !windows
package dumper
func safeName(filename string) string {
return filename
}

View File

@ -0,0 +1,9 @@
// +build windows
package dumper
import "strings"
func safeName(filename string) string {
return strings.ReplaceAll(filename, "*", "_")
}