Forgor to push 💀

This commit is contained in:
2026-02-18 21:58:56 +01:00
parent ac98a90222
commit 9ea5b8668f
13 changed files with 473 additions and 153 deletions

87
main.go
View File

@@ -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
}