Forgor to push 💀
This commit is contained in:
87
main.go
87
main.go
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"bufio"
|
||||
"code.gitea.io/sdk/gitea"
|
||||
"flag"
|
||||
"fmt"
|
||||
"git.nevets.tech/Steven/ezconf"
|
||||
"github.com/go-git/go-billy/v5"
|
||||
@@ -14,7 +15,9 @@ import (
|
||||
"io"
|
||||
"os"
|
||||
"os/exec"
|
||||
"os/signal"
|
||||
"strings"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
var config *ezconf.Configuration
|
||||
@@ -30,16 +33,61 @@ var creds *http.BasicAuth
|
||||
|
||||
var repo *git.Repository
|
||||
|
||||
//TODO create logic for domain based configs
|
||||
//TODO create logic for gh vs gt repos
|
||||
|
||||
func main() {
|
||||
makeDirs()
|
||||
createConfig()
|
||||
devFlag := flag.Bool("dev", false, "Developer Mode")
|
||||
|
||||
newDomainFlag := flag.String("new-domain", "example.com", "Domain to create new configs and directories for")
|
||||
installFlag := flag.Bool("install", false, "Install Certman")
|
||||
daemonFlag := flag.Bool("d", false, "Daemon Mode")
|
||||
|
||||
flag.Parse()
|
||||
|
||||
if *devFlag {
|
||||
|
||||
os.Exit(0)
|
||||
}
|
||||
if *newDomainFlag != "example.com" {
|
||||
fmt.Printf("Creating new domain %s\n", *newDomainFlag)
|
||||
createNewDomainConfig(*newDomainFlag)
|
||||
createNewDomainCertsDir(*newDomainFlag)
|
||||
}
|
||||
if *installFlag {
|
||||
makeDirs()
|
||||
config = ezconf.NewConfiguration("/etc/certman/certman.conf", defaultConfig)
|
||||
}
|
||||
if *daemonFlag {
|
||||
// Check if main config exists
|
||||
if _, err := os.Stat("/etc/certman/certman.conf"); os.IsNotExist(err) {
|
||||
fmt.Println("Main config file not found, please run 'certman --install', then properly configure /etc/certman/certman.conf.")
|
||||
os.Exit(1)
|
||||
} else if err != nil {
|
||||
fmt.Printf("Error opening /etc/certman/certman.conf: %v\n", err)
|
||||
}
|
||||
// Setup SIGINT and SIGTERM listeners
|
||||
sigChannel := make(chan os.Signal, 1)
|
||||
signal.Notify(sigChannel, syscall.SIGINT, syscall.SIGTERM)
|
||||
|
||||
// Task loop
|
||||
go func() {
|
||||
|
||||
}()
|
||||
|
||||
// Cleanup on stop
|
||||
sig := <-sigChannel
|
||||
fmt.Printf("Program terminated with %v\n", sig)
|
||||
|
||||
close()
|
||||
}
|
||||
}
|
||||
|
||||
func close() {
|
||||
|
||||
}
|
||||
|
||||
func maindis() {
|
||||
config = ezconf.NewConfiguration("/etc/certman/certman.conf")
|
||||
config = ezconf.NewConfiguration("/etc/certman/certman.conf", "")
|
||||
|
||||
var err error
|
||||
args := os.Args
|
||||
@@ -130,12 +178,12 @@ func maindis() {
|
||||
)
|
||||
stdout, err := cmd.StdoutPipe()
|
||||
if err != nil {
|
||||
fmt.Printf("Error getting stdout from lego process: %v", err)
|
||||
fmt.Printf("Error getting stdout from lego process: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
err = cmd.Start()
|
||||
if err != nil {
|
||||
fmt.Printf("Error creating certs with lego: %v", err)
|
||||
fmt.Printf("Error creating certs with lego: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
scanner := bufio.NewScanner(stdout)
|
||||
@@ -149,7 +197,7 @@ func maindis() {
|
||||
}()
|
||||
err = cmd.Wait()
|
||||
if err != nil {
|
||||
fmt.Printf("Error waiting for lego command to finish: %v", err)
|
||||
fmt.Printf("Error waiting for lego command to finish: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
addAndPushCerts()
|
||||
@@ -158,12 +206,12 @@ func maindis() {
|
||||
func fixUpdateSh() {
|
||||
oldUpdateSh, err := fs.Open("update.sh")
|
||||
if err != nil {
|
||||
fmt.Printf("Error opening update.sh: %v", err)
|
||||
fmt.Printf("Error opening update.sh: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
contentBytes, err := io.ReadAll(oldUpdateSh)
|
||||
if err != nil {
|
||||
fmt.Printf("Error reading update.sh: %v", err)
|
||||
fmt.Printf("Error reading update.sh: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
content := string(contentBytes)
|
||||
@@ -172,29 +220,12 @@ func fixUpdateSh() {
|
||||
_, err = updateSh.Write([]byte(content))
|
||||
err = updateSh.Close()
|
||||
if err != nil {
|
||||
fmt.Printf("Error writing update.sh: %v", err)
|
||||
fmt.Printf("Error writing update.sh: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
_, err = workTree.Add("update.sh")
|
||||
if err != nil {
|
||||
fmt.Printf("Error adding update.sh: %v", err)
|
||||
fmt.Printf("Error adding update.sh: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
func contains(slice []string, value string) (sliceHas bool, index int) {
|
||||
for i, entry := range slice {
|
||||
if entry == value {
|
||||
return true, i
|
||||
}
|
||||
}
|
||||
return false, -1
|
||||
}
|
||||
|
||||
func insert(a []string, index int, value string) []string {
|
||||
last := len(a) - 1
|
||||
a = append(a, a[last])
|
||||
copy(a[index+1:], a[index:last])
|
||||
a[index] = value
|
||||
return a
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user