Skip to content
Snippets Groups Projects
Unverified Commit aaec0050 authored by Max Adamo's avatar Max Adamo
Browse files

add windows compatibility

parent 4b7649c1
No related branches found
No related tags found
No related merge requests found
...@@ -8,6 +8,7 @@ import ( ...@@ -8,6 +8,7 @@ import (
"net/http" "net/http"
"os" "os"
"path/filepath" "path/filepath"
"runtime"
"strconv" "strconv"
"strings" "strings"
"time" "time"
...@@ -18,23 +19,33 @@ import ( ...@@ -18,23 +19,33 @@ import (
) )
var ( var (
appVersion string appVersion string
buildTime string buildTime string
CertBase string CertBase string
KeyBase string KeyBase string
GroupName string GroupName string
RedisBaseURL string RedisBaseURL string
VaultBaseURL string VaultBaseURL string
certificateDestination string certificateDestination string
fullchainDestination string fullchainDestination string
keyDestination string keyDestination string
caDestination string caDestination string
Type string Type string
tmpCertificateDestination string
tmpFullchainDestination string
tmpCaDestination string
tmpKeyDestination string
certTmpDir string
) )
// app clean and exit // app clean and exit
func appExit(status int) { func appExit(status int) {
err := os.RemoveAll("/tmp/acme-downloader") if runtime.GOOS == "windows" {
certTmpDir = "C:\\tmp\\acme-downloader\\"
} else {
certTmpDir = "/tmp/acme-downloader"
}
err := os.RemoveAll(certTmpDir)
if err != nil { if err != nil {
} }
os.Exit(status) os.Exit(status)
...@@ -245,9 +256,15 @@ func main() { ...@@ -245,9 +256,15 @@ func main() {
KeyBase = "/etc/ssl/private" KeyBase = "/etc/ssl/private"
GroupName = "root" GroupName = "root"
} else if OSRelease == "unknown" { } else if OSRelease == "unknown" {
CertBase = "/PATH/TO/CERTIFICATE" if runtime.GOOS == "windows" {
KeyBase = "/PATH/TO/PRIV/KEY" CertBase = "DRIVE:\\PATH\\TO\\CERTIFICATE"
GroupName = "root" KeyBase = "DRIVE:\\PATH\\TO\\KEY"
GroupName = "root"
} else {
CertBase = "/PATH/TO/CERTIFICATE"
KeyBase = "/PATH/TO/PRIV/KEY"
GroupName = "root"
}
} }
usage := fmt.Sprintf(`ACME Downloader: usage := fmt.Sprintf(`ACME Downloader:
...@@ -282,6 +299,18 @@ Options: ...@@ -282,6 +299,18 @@ Options:
appExit(0) appExit(0)
} }
if runtime.GOOS == "windows" {
tmpCertificateDestination = "C:\\tmp\\acme-downloader\\cert\\amce_cert.pem"
tmpFullchainDestination = "C:\\tmp\\acme-downloader\\cert\\amce_fullchain.pem"
tmpCaDestination = "C:\\tmp\\acme-downloader\\cert\\amce_ca.pem"
tmpKeyDestination = "C:\\tmp\\acme-downloader\\key\\amce_key.pem"
} else {
tmpCertificateDestination = "/tmp/acme-downloader/cert/amce_cert.pem"
tmpFullchainDestination = "/tmp/acme-downloader/cert/amce_fullchain.pem"
tmpCaDestination = "/tmp/acme-downloader/cert/amce_ca.pem"
tmpKeyDestination = "/tmp/acme-downloader/key/amce_key.pem"
}
VaultToken := arguments["--vault-token"].(string) VaultToken := arguments["--vault-token"].(string)
CertName := arguments["--cert-name"].(string) CertName := arguments["--cert-name"].(string)
CertNameUndercored := strings.Replace(CertName, ".", "_", -1) CertNameUndercored := strings.Replace(CertName, ".", "_", -1)
...@@ -301,23 +330,25 @@ Options: ...@@ -301,23 +330,25 @@ Options:
RedisCAURL := fmt.Sprintf("%v/%v:%v:redis_%v_chain_pem.txt", RedisBaseURL, TeamName, CertName, CertNameUndercored) RedisCAURL := fmt.Sprintf("%v/%v:%v:redis_%v_chain_pem.txt", RedisBaseURL, TeamName, CertName, CertNameUndercored)
RedisFullChainURL := fmt.Sprintf("%v/%v:%v:redis_%v_fullchain_pem.txt", RedisBaseURL, TeamName, CertName, CertNameUndercored) RedisFullChainURL := fmt.Sprintf("%v/%v:%v:redis_%v_fullchain_pem.txt", RedisBaseURL, TeamName, CertName, CertNameUndercored)
if arguments["--cert-destination"] == fmt.Sprintf("%v/<cert-name>.crt", CertBase) { // fmt.Println(filepath.Join("a", "b", "c"))
certificateDestination = fmt.Sprintf("%v/%v.crt", CertBase, CertName) if arguments["--cert-destination"] == fmt.Sprintf(filepath.Join(CertBase, "<cert-name>.crt")) {
// certificateDestination = fmt.Sprintf("%v/%v.crt", CertBase, CertName)
certificateDestination = fmt.Sprintf(filepath.Join(CertBase, fmt.Sprintf("%v.crt", CertName)))
} else { } else {
certificateDestination = arguments["--cert-destination"].(string) certificateDestination = arguments["--cert-destination"].(string)
} }
if arguments["--fullchain-destination"] == fmt.Sprintf("%v/<cert-name>_fullchain.crt", CertBase) { if arguments["--fullchain-destination"] == fmt.Sprintf(filepath.Join(CertBase, "<cert-name>_fullchain.crt")) {
fullchainDestination = fmt.Sprintf("%v/%v_fullchain.crt", CertBase, CertName) fullchainDestination = fmt.Sprintf(filepath.Join(CertBase, fmt.Sprintf("%v_fullchain.crt", CertName)))
} else { } else {
fullchainDestination = arguments["--fullchain-destination"].(string) fullchainDestination = arguments["--fullchain-destination"].(string)
} }
if arguments["--ca-destination"] == fmt.Sprintf("%v/COMODO_<type>.crt", CertBase) { if arguments["--ca-destination"] == fmt.Sprintf(filepath.Join(CertBase, "COMODO_<type>.crt")) {
caDestination = fmt.Sprintf("%v/COMODO_%v.crt", CertBase, Type) caDestination = fmt.Sprintf(filepath.Join(CertBase, fmt.Sprintf("COMODO_%v.crt", Type)))
} else { } else {
caDestination = arguments["--ca-destination"].(string) caDestination = arguments["--ca-destination"].(string)
} }
if arguments["--key-destination"] == fmt.Sprintf("%v/<cert-name>.key", KeyBase) { if arguments["--key-destination"] == fmt.Sprintf(filepath.Join(KeyBase, "<cert-name>.key")) {
keyDestination = fmt.Sprintf("%v/%v.key", KeyBase, CertName) keyDestination = fmt.Sprintf(filepath.Join(KeyBase, fmt.Sprintf("%v.key", CertName)))
} else { } else {
keyDestination = arguments["--key-destination"].(string) keyDestination = arguments["--key-destination"].(string)
} }
...@@ -334,10 +365,6 @@ Options: ...@@ -334,10 +365,6 @@ Options:
privKey := GetVaultKey(VaultURL, VaultToken) privKey := GetVaultKey(VaultURL, VaultToken)
// download and test certificates on a temporary location // download and test certificates on a temporary location
tmpCertificateDestination := "/tmp/acme-downloader/cert/amce_cert.pem"
tmpFullchainDestination := "/tmp/acme-downloader/cert/amce_fullchain.pem"
tmpCaDestination := "/tmp/acme-downloader/cert/amce_ca.pem"
tmpKeyDestination := "/tmp/acme-downloader/key/amce_key.pem"
WriteToFile(certificate, tmpCertificateDestination, GroupName, 0644, 0755) WriteToFile(certificate, tmpCertificateDestination, GroupName, 0644, 0755)
WriteToFile(fullChain, tmpFullchainDestination, GroupName, 0644, 0755) WriteToFile(fullChain, tmpFullchainDestination, GroupName, 0644, 0755)
WriteToFile(ca, tmpCaDestination, GroupName, 0644, 0755) WriteToFile(ca, tmpCaDestination, GroupName, 0644, 0755)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment