wit-debian-gui/window-resolv.go

98 lines
2.1 KiB
Go

package main
import (
"os"
"bufio"
"strings"
"errors"
"go.wit.com/log"
"go.wit.com/gui/gui"
"go.wit.com/gui/gadgets"
)
var filename string = "resolv-1-1-1-1.conf"
var generaloutput *gui.Node
var resWin *gadgets.BasicWindow
func resolvWindow() {
if (resWin != nil) {
resWin.Toggle()
return
}
resWin = gadgets.NewBasicWindow(myGui,"resolv.conf Window")
////////////// filename /////////////////////////
gNode := resWin.Box().NewGroup("filename")
var tmp []string
for i, s := range packrBox.List() {
log.Println("i, s =", i, s)
if strings.HasPrefix(s, "resolv/") {
tmp = append(tmp, s)
}
}
// panic("junk")
resolvNode := gNode.NewCombobox("test")
for _, thing := range tmp {
resolvNode.AddText(thing)
}
resolvNode.SetText(filename)
resolvNode.Custom = func () {
log.Println("STARTED HOSTNAME")
filename = resolvNode.GetText()
b, _ := packrBox.FindString(filename)
if (generaloutput != nil) {
generaloutput.SetText(b)
}
log.Println("ENDED GetText() HOSTNAME =", filename)
}
////////////// connect /////////////////////////
gNode = resWin.Box().NewGroup("")
gNode.NewButton("Update /etc/resolv.conf", func () {
sudo( func() error {
log.Println("set resolv.conf to",filename)
b, _ := packrBox.FindString(filename)
// spew.Dump(b)
b = generaloutput.GetText()
log.Println("Setting /etc/resolv.conf to:\n\n" + b)
f, err := os.Create("/etc/resolv.conf")
if err != nil {
return errors.New("os.Create() /etc/resolv.conf failed")
}
defer f.Close()
w := bufio.NewWriter(f)
n4, err := w.WriteString(b)
log.Println("n4 =", n4)
w.Flush()
return nil
})
})
gNode.NewButton("test ping ipv4", func () {
bash("ping -c 3 -4 google.com")
})
gNode.NewButton("test ping ipv6", func () {
bash("ping -c 3 -6 google.com")
})
gNode.NewButton("set output", func () {
if (generaloutput != nil) {
generaloutput.SetText("wow")
generaloutput.Margin()
}
})
gNode = resWin.Box().NewGroup("Update")
gNode.NewButton("MakeGroupEdit()", func () {
log.Warn("recreate a gadget for editing the resolv.conf")
//generaloutput = gNode.MakeGroupEdit("resolv.conf:")
})
}