summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorMike Crute <mike@crute.us>2020-01-04 06:39:30 +0000
committerMike Crute <mike@crute.us>2020-08-11 02:54:46 +0000
commitedb2c73150c786126c63c96cee7dae5e1c10b6df (patch)
tree863ea8743a94c816664ebbecc9e9a68387e2ed7a /main.go
parent8ed9671c0b4f78711858448cf3b4ee9af0eba51e (diff)
downloadgo_ddns_manager-edb2c73150c786126c63c96cee7dae5e1c10b6df.tar.bz2
go_ddns_manager-edb2c73150c786126c63c96cee7dae5e1c10b6df.tar.xz
go_ddns_manager-edb2c73150c786126c63c96cee7dae5e1c10b6df.zip
Refator using le utils
Diffstat (limited to 'main.go')
-rw-r--r--main.go52
1 files changed, 14 insertions, 38 deletions
diff --git a/main.go b/main.go
index 367814d..e657062 100644
--- a/main.go
+++ b/main.go
@@ -1,44 +1,19 @@
1package main 1package main
2 2
3import ( 3import (
4 "fmt"
5 "log" 4 "log"
6 "os" 5 "os"
7 "strconv"
8 6
9 "github.com/gin-gonic/gin" 7 "github.com/gin-gonic/gin"
10 "github.com/spf13/cobra" 8 "github.com/spf13/cobra"
9 "github.com/spf13/viper"
11 10
11 "code.crute.me/mcrute/go_ddns_manager/util"
12 "code.crute.me/mcrute/go_ddns_manager/web" 12 "code.crute.me/mcrute/go_ddns_manager/web"
13 "code.crute.me/mcrute/go_ddns_manager/web/controllers" 13 "code.crute.me/mcrute/go_ddns_manager/web/controllers"
14 "code.crute.me/mcrute/go_ddns_manager/web/middleware" 14 "code.crute.me/mcrute/go_ddns_manager/web/middleware"
15) 15)
16 16
17// TODO: use from a common package
18func MustGetString(c *cobra.Command, k string) string {
19 f := c.Flags().Lookup(k)
20 if f == nil {
21 panic(fmt.Errorf("No flag named %s", k))
22 }
23
24 return f.Value.String()
25}
26
27// TODO: use from a common package
28func MustGetBool(c *cobra.Command, k string) bool {
29 f := c.Flags().Lookup(k)
30 if f == nil {
31 panic(fmt.Errorf("No flag named %s", k))
32 }
33
34 t, err := strconv.ParseBool(f.Value.String())
35 if err != nil {
36 panic(err)
37 }
38
39 return t
40}
41
42func makeServer(cfg *web.ServerConfig) *gin.Engine { 17func makeServer(cfg *web.ServerConfig) *gin.Engine {
43 router := gin.Default() 18 router := gin.Default()
44 router.Use(middleware.ConfigContextMiddleware(cfg)) 19 router.Use(middleware.ConfigContextMiddleware(cfg))
@@ -68,9 +43,9 @@ func main() {
68 Args: cobra.MinimumNArgs(1), 43 Args: cobra.MinimumNArgs(1),
69 Run: func(cmd *cobra.Command, args []string) { 44 Run: func(cmd *cobra.Command, args []string) {
70 cfg, err := web.LoadServerConfig( 45 cfg, err := web.LoadServerConfig(
71 MustGetString(cmd, "zones-config"), 46 viper.GetString("zones-config"),
72 MustGetString(cmd, "auth-config"), 47 viper.GetString("auth-config"),
73 MustGetString(cmd, "view-name"), 48 viper.GetString("view-name"),
74 args[0], 49 args[0],
75 ) 50 )
76 if err != nil { 51 if err != nil {
@@ -78,18 +53,19 @@ func main() {
78 os.Exit(1) 53 os.Exit(1)
79 } 54 }
80 55
81 web.GinRun( 56 util.GinRun(
82 makeServer(cfg), 57 makeServer(cfg),
83 MustGetBool(cmd, "debug"), 58 viper.GetBool("debug"),
84 MustGetString(cmd, "listen")) 59 viper.GetString("listen"))
85 }, 60 },
86 } 61 }
87 62
88 cmd.Flags().StringP("zones-config", "z", "cfg/zones.conf", "Bind key and zones config file") 63 util.WrapViper(cmd, "DNS_MANAGE").
89 cmd.Flags().StringP("auth-config", "a", "cfg/server_auth.json", "Server auth configuration file") 64 BindString("zones-config", "z", "cfg/zones.conf", "Bind key and zones config file").
90 cmd.Flags().StringP("view-name", "n", "external", "Name of view to update for ACME and DDNS") 65 BindString("auth-config", "a", "cfg/server_auth.json", "Server auth configuration file").
91 cmd.Flags().StringP("listen", "l", ":9090", "Listen address and port") 66 BindString("view-name", "n", "external", "Name of view to update for ACME and DDNS").
92 cmd.Flags().BoolP("debug", "d", false, "Run server in debug mode with debug logs") 67 BindString("listen", "l", ":9090", "Listen address and port").
68 BindBool("debug", "d", false, "Run server in debug mode with debug logs")
93 69
94 if err := cmd.Execute(); err != nil { 70 if err := cmd.Execute(); err != nil {
95 log.Println(err) 71 log.Println(err)