Allow passing in a configuration file with argparse (fix #6)
This commit is contained in:
parent
428cedeb45
commit
6e4109cfd5
1
go.mod
1
go.mod
@ -3,6 +3,7 @@ module code.retroedge.tech/noah/lapisdeploy
|
||||
go 1.22.0
|
||||
|
||||
require (
|
||||
github.com/akamensky/argparse v1.4.0 // indirect
|
||||
github.com/gogs/git-module v1.8.3 // indirect
|
||||
github.com/mcuadros/go-version v0.0.0-20190308113854-92cdf37c5b75 // indirect
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect
|
||||
|
2
go.sum
2
go.sum
@ -1,3 +1,5 @@
|
||||
github.com/akamensky/argparse v1.4.0 h1:YGzvsTqCvbEZhL8zZu2AiA5nq805NZh75JNj4ajn1xc=
|
||||
github.com/akamensky/argparse v1.4.0/go.mod h1:S5kwC7IuDcEr5VeXtGPRVZ5o/FdhcMlQz4IZQuw64xA=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/gogs/git-module v1.8.3 h1:4N9HOLzkmSfb5y4Go4f/gdt1/Z60/aQaAKr8lbsfFps=
|
||||
|
17
main.go
17
main.go
@ -7,6 +7,7 @@ import (
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"github.com/akamensky/argparse"
|
||||
)
|
||||
|
||||
// Create a configuration struct
|
||||
@ -38,7 +39,16 @@ func handler(data map[string]interface{}) {
|
||||
|
||||
// main is the starting point of the program
|
||||
func main() {
|
||||
parseConfig("config.json", &configuration)
|
||||
// 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"})
|
||||
if err := parser.Parse(os.Args); err != nil { // Parse arguments
|
||||
fmt.Print(parser.Usage(err)) // Show usage if there's an error
|
||||
return
|
||||
}
|
||||
|
||||
parseConfig(*config_path, &configuration) // Parse JSON configuration file
|
||||
|
||||
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){
|
||||
var data map[string]interface{}
|
||||
err := json.NewDecoder(r.Body).Decode(&data)
|
||||
@ -47,8 +57,9 @@ func main() {
|
||||
return
|
||||
}
|
||||
|
||||
go handler(data)
|
||||
go handler(data) // Run the handler
|
||||
fmt.Fprint(w, "Received!")
|
||||
})
|
||||
go log.Fatal(http.ListenAndServe(":7575", nil))
|
||||
log.Printf("Starting Lapis Deploy...")
|
||||
log.Fatal(http.ListenAndServe(":7575", nil))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user