diff options
Diffstat (limited to 'examples/control-panel-cloudflare')
| -rw-r--r-- | examples/control-panel-cloudflare/Makefile | 24 | ||||
| -rw-r--r-- | examples/control-panel-cloudflare/argv.go | 30 | ||||
| -rw-r--r-- | examples/control-panel-cloudflare/config.go | 71 | ||||
| -rw-r--r-- | examples/control-panel-cloudflare/main.go | 40 |
4 files changed, 165 insertions, 0 deletions
diff --git a/examples/control-panel-cloudflare/Makefile b/examples/control-panel-cloudflare/Makefile new file mode 100644 index 0000000..07d8f77 --- /dev/null +++ b/examples/control-panel-cloudflare/Makefile @@ -0,0 +1,24 @@ +run: build + ./control-panel-cloudflare + +build-release: + go get -v -u -x . + go build + ./control-panel-cloudflare + +build: + GO111MODULE="off" go get -v -x . + GO111MODULE="off" go build + +update: + GO111MODULE="off" go get -v -u -x . + +log: + reset + tail -f /tmp/witgui.* /tmp/guilogfile + +gocui: build + ./control-panel-cloudflare -gui gocui >/tmp/witgui.log.stderr 2>&1 + +quiet: + ./control-panel-cloudflare >/tmp/witgui.log.stderr 2>&1 diff --git a/examples/control-panel-cloudflare/argv.go b/examples/control-panel-cloudflare/argv.go new file mode 100644 index 0000000..49167cd --- /dev/null +++ b/examples/control-panel-cloudflare/argv.go @@ -0,0 +1,30 @@ +// This creates a simple hello world window +package main + +import ( + "fmt" + arg "github.com/alexflint/go-arg" + "go.wit.com/gui" + log "go.wit.com/gui/log" +) + + +var args struct { + Foo string + Bar bool + User string `arg:"env:USER"` + Demo bool `help:"run a demo"` + gui.GuiArgs + log.LogArgs +} + +func init() { + arg.MustParse(&args) + fmt.Println(args.Foo, args.Bar, args.User) + + if (args.Gui != "") { + gui.GuiArg.Gui = args.Gui + } + log.Log(true, "INIT() args.GuiArg.Gui =", gui.GuiArg.Gui) + +} diff --git a/examples/control-panel-cloudflare/config.go b/examples/control-panel-cloudflare/config.go new file mode 100644 index 0000000..a65ad25 --- /dev/null +++ b/examples/control-panel-cloudflare/config.go @@ -0,0 +1,71 @@ +// This is a simple example +package main + +import ( + "os" + "log" + "bufio" + "strings" + + "go.wit.com/control-panel-dns/cloudflare" +) + +func saveConfig() { + log.Println("TODO") +} + +func readConfig() { + homeDir, err := os.UserHomeDir() + if err != nil { + log.Println("searchPaths() error. exiting here?") + } + filename := homeDir + "/" + configfile + log.Println("filename =", filename) + + readFileLineByLine(filename) + // os.Exit(0) +} + +// readFileLineByLine opens a file and reads through each line. +func readFileLineByLine(filename string) error { + // Open the file. + file, err := os.Open(filename) + if err != nil { + return err + } + defer file.Close() + + log.Println("readFileLineByLine() =", filename) + + // Create a new Scanner for the file. + scanner := bufio.NewScanner(file) + + // Read through each line using scanner. + for scanner.Scan() { + var newc *cloudflare.ConfigT + newc = new(cloudflare.ConfigT) + + line := scanner.Text() + parts := strings.Fields(line) + + if (len(parts) < 4) { + log.Println("readFileLineByLine() SKIP =", parts) + continue + } + + newc.Domain = parts[0] + newc.ZoneID = parts[1] + newc.Auth = parts[2] + newc.Email = parts[3] + + cloudflare.Config[parts[0]] = newc + log.Println("readFileLineByLine() =", newc.Domain, newc.ZoneID, newc.Auth, newc.Email) + } + + // Check for errors during Scan. + if err := scanner.Err(); err != nil { + return err + } + + return nil +} diff --git a/examples/control-panel-cloudflare/main.go b/examples/control-panel-cloudflare/main.go new file mode 100644 index 0000000..0661a93 --- /dev/null +++ b/examples/control-panel-cloudflare/main.go @@ -0,0 +1,40 @@ +// This is a simple example +package main + +import ( + "go.wit.com/gui" + "go.wit.com/control-panel-dns/cloudflare" +) + +var title string = "Cloudflare DNS Control Panel" +var outfile string = "/tmp/guilogfile" +var configfile string = ".config/wit/cloudflare" + +var myGui *gui.Node + +// var buttonCounter int = 5 +// var gridW int = 5 +// var gridH int = 3 + +// var mainWindow, more, more2 *gui.Node + +// var cloudflareURL string = "https://api.cloudflare.com/client/v4/zones/" + +func main() { + // parse the config file + readConfig() + + // initialize a new GO GUI instance + myGui = gui.New().Default() + + // draw the cloudflare control panel window + win := cloudflare.MakeCloudflareWindow(myGui) + win.SetText(title) + + // This is just a optional goroutine to watch that things are alive + gui.Watchdog() + gui.StandardExit() + + // update the config file + saveConfig() +} |
