package main import ( "log" "time" "os" "io/ioutil" "git.wit.org/wit/gui" ) var myGui *gui.Node var mainWindow *gui.Node func initGUI() { myGui = gui.New().LoadToolkit("gocui") mainWindow = myGui.NewWindow("wit new machine setup").SetText("wit new machine setup") mainWindow.Custom = customExit mainTab(mainWindow) } func customExit() { log.Println("Should Exit Here") // window := gui.Data.WindowMap["Debugging2"] // spew.Dump(window) time.Sleep(2 * time.Second) log.Println("") log.Println("CLEAN EXIT") log.Println("") os.Exit(0) } var xtermHold *gui.Node var padding *gui.Node var firefox *gui.Node var resolv *gui.Node func writeRes(indir string, outdir string, name string) { tmp, _ := res.ReadFile(indir + name) ioutil.WriteFile(outdir + name, tmp, 0644) } func mainTab(n *gui.Node) { var g *gui.Node newTab := n.NewTab("mainTab") //////////////////// General GUI debugging ///////////////////////// g = newTab.NewGroup("Debug") padding = g.NewCheckbox("padding") xtermHold = g.NewCheckbox("xterm -hold") firefox = g.NewCheckbox("Use Firefox") g.NewLabel("resolv.conf") resolv = g.NewTextbox("resolv") resolv.Dump(true) resolv.SetText("hello world\nfoo bar\n") ///////////////////////////////////////////////////////////////////////////// rn := newTab.NewGroup("Local Linux Settings") rn.NewButton("apt sources", func () { if _, err := os.Stat("/etc/apt/sources.list.d/wit.list"); err == nil { log.Println("apt sources are already configured") } else { myGui.CloseToolkit("gocui") writeRes("resources/", "/etc/", "apt/sources.list") writeRes("resources/", "/etc/", "apt/sources.list.d/wit.list") writeRes("resources/", "/etc/", "apt/sources.list.d/debian.list") writeRes("resources/apt/", "/etc/wit/", "wit.gpg") doCmd("apt update") doCmd("apt dist-upgrade") log.Println("\nYou should reboot now\n") os.Exit(0) } }) rn.NewButton("apt update", func () { myGui.CloseToolkit("gocui") doCmd("apt update") os.Exit(0) }) rn.NewButton("apt dist-upgrade", func () { myGui.CloseToolkit("gocui") doCmd("apt dist-upgrade") os.Exit(0) }) rn.NewButton("purge rc-only", func () { xterm("cd ~/jcarr/setup; make reset-purge-rc-only-packages") }) rn.NewButton("install defaults", func () { xterm("cd ~/jcarr/setup; make setup-packages-default") }) rn.NewButton("install kvm", func () { xterm("cd ~/jcarr/setup; make setup-packages-kvm") }) rn.NewButton("ttyS0", func () { myGui.CloseToolkit("gocui") // systemctl enable serial-getty@ttyS0.service // cp ttyS0.conf /etc/init/ if _, err := os.Stat("/etc/init.d/ttyS0"); err == nil { log.Println("serial ttyS0 is already configured") } else { foo := []byte(ttyS0) ioutil.WriteFile("/etc/init.d/ttyS0", foo, 0644) doCmd("ls -l") doCmd("cat /etc/init.d/ttyS0") doCmd("systemctl enable serial-getty@ttyS0.service") doCmd("service serial-getty@ttyS0 start") // /etc/securetty } if _, err := os.Stat("/etc/default/grub.d/wit.cfg"); err == nil { log.Println("Grub is already configured") } else { writeRes("resources/", "/etc/default/", "grub.d/wit.cfg") // grub, _ := res.ReadFile("resources/grub.d/wit.cfg") // ioutil.WriteFile("/etc/default/grub.d/wit.cfg", grub, 0644) doCmd("update-grub") } os.Exit(0) }) rn.NewButton("git config", func () { myGui.CloseToolkit("gocui") doCmd("git config pull.rebase false") os.Exit(0) }) rn.NewLabel("Not yet working stuff") rn.NewButton("resolv.conf", func () { s := resolv.GetText() log.Println("supposed to make the resolv.conf window\n\n", s) }) }