chore: add silent checkbox

This commit is contained in:
DaanSelen
2026-04-02 11:48:23 +02:00
parent 2bd569d8f5
commit d2781c0247
3 changed files with 25 additions and 6 deletions
+3 -2
View File
@@ -35,9 +35,10 @@ func main() {
targEntry := widget.NewEntry() targEntry := widget.NewEntry()
var book string var book string
var silent bool
inputContainer := draw.MakeInput(targEntry, &book) inputContainer := draw.MakeInput(targEntry, &book, &silent)
footerContainer := draw.MakeFooter(targEntry, &book, app) footerContainer := draw.MakeFooter(targEntry, &book, &silent, app)
center := container.NewBorder( center := container.NewBorder(
nil, // top nil, // top
+12 -3
View File
@@ -13,15 +13,24 @@ import (
tasks "patchworks/src/modules/tasks" tasks "patchworks/src/modules/tasks"
) )
func MakeInput(targEntry *widget.Entry, book *string) *fyne.Container { func MakeInput(targEntry *widget.Entry, book *string, silent *bool) *fyne.Container {
availBooks, err := tasks.ListAvailableBooks() availBooks, err := tasks.ListAvailableBooks()
if err != nil { if err != nil {
log.Println("failed to read available books on disk") log.Println("failed to read available books on disk")
} }
silentCheck := widget.NewCheck("Silent (Return Only JSON Data)", func(checked bool) {
if checked {
*silent = true
} else {
*silent = false
}
})
targetBox := container.NewVBox( targetBox := container.NewVBox(
widget.NewLabel("MeshCentral Target Group"), widget.NewLabel("MeshCentral Target Group"),
targEntry, targEntry,
silentCheck,
widget.NewLabel(""), widget.NewLabel(""),
canvas.NewLine(color.Gray{Y: 128}), canvas.NewLine(color.Gray{Y: 128}),
) )
@@ -55,7 +64,7 @@ func MakeInput(targEntry *widget.Entry, book *string) *fyne.Container {
return inputBox return inputBox
} }
func MakeFooter(targEntry *widget.Entry, book *string, app fyne.App) *fyne.Container { func MakeFooter(targEntry *widget.Entry, book *string, silent *bool, app fyne.App) *fyne.Container {
var result string var result string
textEntry := widget.NewMultiLineEntry() textEntry := widget.NewMultiLineEntry()
@@ -89,7 +98,7 @@ func MakeFooter(targEntry *widget.Entry, book *string, app fyne.App) *fyne.Conta
log.Println("kicking off goroutine") log.Println("kicking off goroutine")
actionBtn.Disable() actionBtn.Disable()
go func() { go func() {
ok, result = runner.RunMeshbook(path, *book, targEntry.Text) ok, result = runner.RunMeshbook(path, *book, *silent, targEntry.Text)
if !ok { if !ok {
log.Println("assuming failed state") log.Println("assuming failed state")
fyne.CurrentApp().Driver().DoFromGoroutine(func() { fyne.CurrentApp().Driver().DoFromGoroutine(func() {
+10 -1
View File
@@ -45,17 +45,26 @@ func FindMeshbookBinary() (bool, string) {
} }
} }
func RunMeshbook(binPath, bookPath, targGroup string) (bool, string) { func RunMeshbook(binPath, bookPath string, silent bool, targGroup string) (bool, string) {
// Meshbook argument compilation
var args []string var args []string
if len(bookPath) == 0 { if len(bookPath) == 0 {
args = []string{"--help"} args = []string{"--help"}
} else { } else {
args = []string{"--nograce", "--indent", "-mb", bookPath, "--group", targGroup} args = []string{"--nograce", "--indent", "-mb", bookPath, "--group", targGroup}
} }
if silent {
args = append(args, "--silent")
}
// Display what we are about to be running
log.Printf("running with parameters: %v", args) log.Printf("running with parameters: %v", args)
// Actually spawn the process
cmd := exec.Command(binPath, args...) cmd := exec.Command(binPath, args...)
// Capture stdout & stderr
outputData, err := cmd.CombinedOutput() outputData, err := cmd.CombinedOutput()
cleanData := ansi.ReplaceAllString(string(outputData), "") cleanData := ansi.ReplaceAllString(string(outputData), "")