summaryrefslogtreecommitdiff
path: root/main.go
blob: f1baba4ba24e01cffcc5be84fb0ed99fc7c3e291 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package main

import (
	"crypto/sha256"
	"encoding/hex"
	"fmt"
	"log"
	"os"

	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/widget"
)

func main() {
	myApp := app.NewWithID("org.buetow.quicklogger")
	myWindow := myApp.NewWindow("Quick logger")

	storageDir := fyne.CurrentApp().Storage().RootURI().Path()
	label := widget.NewLabel(storageDir)

	input := widget.NewMultiLineEntry()
	input.SetPlaceHolder("Enter text here.")

	button := widget.NewButton("Log text", func() {
		content := input.Text
		filename := fmt.Sprintf("%s/quicklog-%s.txt", storageDir, getSHA256Hash(content))
		err := os.WriteFile(filename, []byte(content), 0644)
		if err != nil {
			log.Println("Error writing to file:", err)
			input.SetText(err.Error())
		} else {
			input.SetText("")
		}
	})

	myWindow.SetContent(container.NewVBox(
		label,
		input,
		button,
	))
	myWindow.Resize(fyne.NewSize(200, 100))
	myWindow.ShowAndRun()
}

func getSHA256Hash(text string) string {
	hasher := sha256.New()
	hasher.Write([]byte(text))
	return hex.EncodeToString(hasher.Sum(nil))
}