mirror of
https://gitlab.freedesktop.org/upower/upower.git
synced 2025-12-28 16:30:05 +01:00
daemon: Get and store env override configurations in the deamon
This commit is contained in:
parent
b604a297be
commit
4e8e8b43f8
4 changed files with 60 additions and 13 deletions
|
|
@ -69,6 +69,9 @@ struct UpDaemonPrivate
|
|||
guint low_time;
|
||||
guint critical_time;
|
||||
guint action_time;
|
||||
|
||||
/* environment variable override */
|
||||
const char *state_dir_override;
|
||||
};
|
||||
|
||||
static void up_daemon_finalize (GObject *object);
|
||||
|
|
@ -975,6 +978,23 @@ up_daemon_get_debug (UpDaemon *daemon)
|
|||
return daemon->priv->debug;
|
||||
}
|
||||
|
||||
/**
|
||||
* up_deamon_get_state_dir_env_override:
|
||||
*
|
||||
* Get UPOWER_STATE_DIR environment variable.
|
||||
**/
|
||||
const gchar *
|
||||
up_deamon_get_state_dir_env_override (UpDaemon *daemon)
|
||||
{
|
||||
return daemon->priv->state_dir_override;
|
||||
}
|
||||
|
||||
static void
|
||||
up_daemon_get_env_override (UpDaemon *self)
|
||||
{
|
||||
self->priv->state_dir_override = g_getenv ("UPOWER_STATE_DIR");
|
||||
}
|
||||
|
||||
/**
|
||||
* up_daemon_device_added_cb:
|
||||
**/
|
||||
|
|
@ -1112,6 +1132,8 @@ up_daemon_init (UpDaemon *daemon)
|
|||
load_time_policy (daemon, FALSE);
|
||||
policy_config_validate (daemon);
|
||||
|
||||
up_daemon_get_env_override (daemon);
|
||||
|
||||
daemon->priv->backend = up_backend_new ();
|
||||
g_signal_connect (daemon->priv->backend, "device-added",
|
||||
G_CALLBACK (up_daemon_device_added_cb), daemon);
|
||||
|
|
|
|||
|
|
@ -408,6 +408,26 @@ up_device_battery_set_charge_thresholds(UpDeviceBattery *self, gdouble start, gd
|
|||
return klass->set_battery_charge_thresholds(&self->parent_instance, start, end, error);
|
||||
}
|
||||
|
||||
static const gchar *
|
||||
up_device_battery_get_state_dir (UpDeviceBattery *self)
|
||||
{
|
||||
UpDevice *device = UP_DEVICE (self);
|
||||
const gchar *state_dir_override = NULL;
|
||||
UpDeviceBatteryPrivate *priv = up_device_battery_get_instance_private (self);
|
||||
|
||||
if (priv->state_dir != NULL)
|
||||
return priv->state_dir;
|
||||
|
||||
state_dir_override = up_device_get_state_dir_override (device);
|
||||
|
||||
if (state_dir_override != NULL)
|
||||
priv->state_dir = state_dir_override;
|
||||
else
|
||||
priv->state_dir = STATE_DIR;
|
||||
|
||||
return priv->state_dir;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
up_device_battery_get_battery_charge_threshold_config(UpDeviceBattery *self)
|
||||
{
|
||||
|
|
@ -415,10 +435,11 @@ up_device_battery_get_battery_charge_threshold_config(UpDeviceBattery *self)
|
|||
g_autofree gchar *data = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autofree gchar *state_filename = NULL;
|
||||
UpDeviceBatteryPrivate *priv = up_device_battery_get_instance_private (self);
|
||||
const char *state_dir = NULL;
|
||||
|
||||
state_filename = g_strdup_printf("charging-threshold-status");
|
||||
filename = g_build_filename (priv->state_dir, state_filename, NULL);
|
||||
state_dir = up_device_battery_get_state_dir (self);
|
||||
filename = g_build_filename (state_dir, state_filename, NULL);
|
||||
if (g_file_get_contents (filename, &data, NULL, &error) == FALSE) {
|
||||
g_debug ("failed to read battery charge threshold: %s", error->message);
|
||||
return FALSE;
|
||||
|
|
@ -594,10 +615,10 @@ static gboolean
|
|||
up_device_battery_charge_threshold_state_write(UpDeviceBattery *self, gboolean enabled, const gchar *state_file) {
|
||||
g_autofree gchar *filename = NULL;
|
||||
GError *error = NULL;
|
||||
const gchar *state_dir;
|
||||
|
||||
UpDeviceBatteryPrivate *priv = up_device_battery_get_instance_private (self);
|
||||
|
||||
filename = g_build_filename (priv->state_dir, state_file, NULL);
|
||||
state_dir = up_device_battery_get_state_dir (self);
|
||||
filename = g_build_filename (state_dir, state_file, NULL);
|
||||
if (!g_file_set_contents (filename, enabled ? "1": "0" , -1, &error)) {
|
||||
g_error ("failed to save battery charge threshold: %s", error->message);
|
||||
return FALSE;
|
||||
|
|
@ -684,8 +705,6 @@ up_device_battery_set_charge_threshold (UpExportedDevice *skeleton,
|
|||
static void
|
||||
up_device_battery_init (UpDeviceBattery *self)
|
||||
{
|
||||
UpDeviceBatteryPrivate *priv = up_device_battery_get_instance_private (self);
|
||||
|
||||
g_object_set (self,
|
||||
"type", UP_DEVICE_KIND_BATTERY,
|
||||
"power-supply", TRUE,
|
||||
|
|
@ -694,12 +713,6 @@ up_device_battery_init (UpDeviceBattery *self)
|
|||
|
||||
g_signal_connect (self, "handle-enable-charge-threshold",
|
||||
G_CALLBACK (up_device_battery_set_charge_threshold), self);
|
||||
|
||||
if (g_getenv ("UPOWER_STATE_DIR")) {
|
||||
priv->state_dir = g_getenv ("UPOWER_STATE_DIR");
|
||||
} else {
|
||||
priv->state_dir = STATE_DIR;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -751,6 +751,17 @@ up_device_get_native (UpDevice *device)
|
|||
return priv->native;
|
||||
}
|
||||
|
||||
const gchar *
|
||||
up_device_get_state_dir_override (UpDevice *device)
|
||||
{
|
||||
UpDevicePrivate *priv = up_device_get_instance_private (device);
|
||||
|
||||
if (priv->daemon == NULL)
|
||||
return NULL;
|
||||
|
||||
return up_deamon_get_state_dir_env_override (priv->daemon);
|
||||
}
|
||||
|
||||
static void
|
||||
up_device_init (UpDevice *device)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ gboolean up_device_get_on_battery (UpDevice *device,
|
|||
gboolean *on_battery);
|
||||
gboolean up_device_get_online (UpDevice *device,
|
||||
gboolean *online);
|
||||
const gchar *up_device_get_state_dir_override (UpDevice *device);
|
||||
gboolean up_device_polkit_is_allowed (UpDevice *device,
|
||||
GDBusMethodInvocation *invocation);
|
||||
void up_device_sibling_discovered (UpDevice *device,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue