fckeuspy-go/vendor/github.com/rymdport/portal/settings/read.go

35 lines
1.1 KiB
Go

package settings
import (
"github.com/godbus/dbus/v5"
"github.com/rymdport/portal/internal/apis"
)
const (
readCallPath = interfaceName + ".Read"
readOneCallPath = interfaceName + ".ReadOne"
readAllCallPath = interfaceName + ".ReadAll"
)
// ReadAll returns all values for the corresponding namespaces passed.
// If namespaces is an empty array or contains an empty string it matches all.
// Globbing is supported but only for trailing sections, e.g. “org.example.*”.
func ReadAll(namespaces []string) (map[string](map[string]dbus.Variant), error) {
result, err := apis.Call(readAllCallPath, namespaces)
if err != nil {
return nil, err
}
return result.(map[string](map[string]dbus.Variant)), nil
}
// ReadOne reads a single value which may be any valid DBus type. Returns an error on any unknown namespace or key.
func ReadOne(namespace, key string) (any, error) {
value, err := apis.Call(readOneCallPath, namespace, key)
if err != nil {
return apis.Call(readCallPath, namespace, key) // Use deprecated fallback if new interface does not exist.
}
return value, err
}