commit
5e485f20d9
|
@ -0,0 +1,7 @@
|
|||
control-panel-dns
|
||||
/files/*
|
||||
/*.deb
|
||||
*.swp
|
||||
/plugins/*
|
||||
|
||||
control-panel-cloudflare
|
|
@ -0,0 +1,27 @@
|
|||
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
|
||||
|
||||
debug: build
|
||||
./control-panel-cloudflare --gui-debug
|
||||
|
||||
gocui: build
|
||||
./control-panel-cloudflare --gui gocui >/tmp/witgui.log.stderr 2>&1
|
||||
|
||||
quiet:
|
||||
./control-panel-cloudflare >/tmp/witgui.log.stderr 2>&1
|
|
@ -0,0 +1,17 @@
|
|||
package main
|
||||
|
||||
/*
|
||||
this enables command line options from other packages like 'gui' and 'log'
|
||||
*/
|
||||
|
||||
import (
|
||||
arg "github.com/alexflint/go-arg"
|
||||
"go.wit.com/gui/gui"
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
|
||||
func init() {
|
||||
arg.MustParse()
|
||||
log.Bool(true, "INIT() args.ArgDebug =", gui.ArgDebug())
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"log"
|
||||
"bufio"
|
||||
"strings"
|
||||
|
||||
"go.wit.com/control-panel-dns/cloudflare"
|
||||
)
|
||||
|
||||
var configfile string = ".config/wit/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
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/gui"
|
||||
"go.wit.com/gui/cloudflare"
|
||||
)
|
||||
|
||||
var title string = "Cloudflare DNS Control Panel"
|
||||
|
||||
var myGui *gui.Node
|
||||
|
||||
// var cloudflareURL string = "https://api.cloudflare.com/client/v4/zones/"
|
||||
|
||||
func main() {
|
||||
// send all log() output to a file in /tmp
|
||||
log.SetTmp()
|
||||
|
||||
// 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()
|
||||
}
|
Loading…
Reference in New Issue