Add partial config implementation

Progress on #3
This commit is contained in:
2024-08-22 13:38:12 -04:00
parent d2672816cd
commit 279471a554
9 changed files with 869 additions and 0 deletions
+16
View File
@@ -6,8 +6,10 @@ import "flag"
import "image"
import "strings"
import "net/url"
import "path/filepath"
import "git.tebibyte.media/tomo/tomo"
import "git.tebibyte.media/tomo/objects"
import "git.tebibyte.media/tomo/nasin/config"
import "git.tebibyte.media/tomo/nasin/internal/registrar"
// Application represents an application object.
@@ -180,6 +182,20 @@ func NewApplicationWindow (application Application, bounds image.Rectangle) (tom
return window, nil
}
// ApplicationConfig opens a new config for the specified application. It must
// be closed when it is no longer needed.
func ApplicationConfig (app ApplicationDescription) (config.ConfigCloser, error) {
user, err := ApplicationUserConfigDir(app)
if err != nil { return nil, err }
user = filepath.Join(user, "config.conf")
system, err := ApplicationSystemConfigDirs(app)
if err != nil { return nil, err }
for index, path := range system {
system[index] = filepath.Join(path, "config.conf")
}
return config.NewConfig(user, system...)
}
func errorPopupf (title, format string, v ...any) func (func ()) {
return func (callback func ()) {
dialog, err := objects.NewDialogOk (