Format main.go

This commit is contained in:
Noah 2024-03-14 11:50:53 -05:00
parent 72c5467ae2
commit ebda91cd67

37
main.go
View File

@ -4,10 +4,10 @@ package main
import (
"encoding/json"
"fmt"
"github.com/akamensky/argparse"
"log"
"net/http"
"os"
"github.com/akamensky/argparse"
)
// Create a configuration struct
@ -15,10 +15,14 @@ var configuration = Configuration{}
// fileExists returns whether the given file or directory exists.
func fileExists(path string) (bool, error) {
_, err := os.Stat(path)
if err == nil { return true, nil }
if os.IsNotExist(err) { return false, nil }
return false, err
_, err := os.Stat(path)
if err == nil {
return true, nil
}
if os.IsNotExist(err) {
return false, nil
}
return false, err
}
// handler is in charge of handling requests after the JSON has been parsed
@ -32,21 +36,25 @@ func handler(data map[string]interface{}) {
site, exists, err := getSite(repo_name)
if err != nil {
deploy_error := newDeployError(1, "handler", fmt.Sprintf("Failed to check if site '%s' exists", repo_name), fmt.Sprint(err))
deploy_error.SendOverMatrix(); return
deploy_error.SendOverMatrix()
return
}
if exists {
sendMessage(MatrixMessage{text: "⚪️ Updating repository..."})
if deploy_error := site.Update(); deploy_error.code != 0 {
deploy_error.SendOverMatrix(); return
deploy_error.SendOverMatrix()
return
}
sendMessage(MatrixMessage{text: "⚪️ Restarting server..."})
if deploy_error := site.Restart(); deploy_error.code != 0 {
deploy_error.SendOverMatrix(); return
deploy_error.SendOverMatrix()
return
}
} else {
sendMessage(MatrixMessage{text: "⚪️ Cloning repository..."})
if deploy_error := CloneSite(repository["ssh_url"].(string), repo_name); deploy_error.code != 0 {
deploy_error.SendOverMatrix(); return
deploy_error.SendOverMatrix()
return
}
sendMessage(MatrixMessage{text: "⚪️ Starting server..."})
if site, exists, err = getSite(repo_name); err != nil {
@ -54,7 +62,8 @@ func handler(data map[string]interface{}) {
deploy_error.SendOverMatrix()
}
if deploy_error := site.Start(); deploy_error.code != 0 {
deploy_error.SendOverMatrix(); return
deploy_error.SendOverMatrix()
return
}
defer sendMessage(MatrixMessage{text: "🚀 Launched for the first time!"})
}
@ -62,7 +71,7 @@ func handler(data map[string]interface{}) {
}
// main is the starting point of the program
func main() {
func main() {
// Parse arguments
parser := argparse.NewParser("lapisdeploy", "Easily deploy Lapis web applications through Gitea webhooks")
config_path := parser.String("c", "config", &argparse.Options{Required: false, Help: "Configuration file", Default: "./config.json"})
@ -73,7 +82,7 @@ func main() {
parseConfig(*config_path, &configuration) // Parse JSON configuration file
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){ // Webhook receiver
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // Webhook receiver
var data map[string]interface{}
err := json.NewDecoder(r.Body).Decode(&data)
if err != nil {
@ -86,7 +95,7 @@ func main() {
})
log.Printf("Starting Lapis Deploy on port %d...", configuration.port)
startAllSites() // Start all the servers
go initMatrix() // Start Matrix stuff in a goroutine
startAllSites() // Start all the servers
go initMatrix() // Start Matrix stuff in a goroutine
log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", configuration.port), nil)) // Start HTTP server
}