diff --git a/runtime.go b/runtime.go index ff5a522a6..f23140ebb 100644 --- a/runtime.go +++ b/runtime.go @@ -2,17 +2,19 @@ package wails // Runtime is the Wails Runtime Interface, given to a user who has defined the WailsInit method type Runtime struct { - Events *RuntimeEvents - Log *RuntimeLog - Dialog *RuntimeDialog - Window *RuntimeWindow + Events *RuntimeEvents + Log *RuntimeLog + Dialog *RuntimeDialog + Window *RuntimeWindow + FileSystem *RuntimeFileSystem } func newRuntime(eventManager *eventManager, renderer Renderer) *Runtime { return &Runtime{ - Events: newRuntimeEvents(eventManager), - Log: newRuntimeLog(), - Dialog: newRuntimeDialog(renderer), - Window: newRuntimeWindow(renderer), + Events: newRuntimeEvents(eventManager), + Log: newRuntimeLog(), + Dialog: newRuntimeDialog(renderer), + Window: newRuntimeWindow(renderer), + FileSystem: newRuntimeFileSystem(), } } diff --git a/runtime_filesystem.go b/runtime_filesystem.go new file mode 100644 index 000000000..f500dc3bc --- /dev/null +++ b/runtime_filesystem.go @@ -0,0 +1,16 @@ +package wails + +import homedir "github.com/mitchellh/go-homedir" + +// RuntimeFileSystem exposes file system utilities to the runtime +type RuntimeFileSystem struct { +} + +func newRuntimeFileSystem() *RuntimeFileSystem { + return &RuntimeFileSystem{} +} + +// HomeDir returns the user's home directory +func (r *RuntimeFileSystem) HomeDir() (string, error) { + return homedir.Dir() +}