summaryrefslogtreecommitdiff
path: root/examples/control-panel-cloudflare
diff options
context:
space:
mode:
Diffstat (limited to 'examples/control-panel-cloudflare')
-rw-r--r--examples/control-panel-cloudflare/Makefile24
-rw-r--r--examples/control-panel-cloudflare/argv.go30
-rw-r--r--examples/control-panel-cloudflare/config.go71
-rw-r--r--examples/control-panel-cloudflare/main.go40
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()
+}