~kennylevinsen/poweralertd-devel

Add flag to only use the events from power supplies v1 APPLIED

Damien Tardy-Panis: 1
 Add flag to only use the events from power supplies

 1 files changed, 15 insertions(+), 2 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~kennylevinsen/poweralertd-devel/patches/49625/mbox | git am -3
Learn more about email & git

[PATCH] Add flag to only use the events from power supplies Export this patch

Some devices don't have a proper separate upower type (for example
headsets) and could be just defined as "battery". So it's impossible
just with the ignore flag to ignore them while keeping monitoring
power supply batteries.
---
 main.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/main.c b/main.c
index 219c79d..a6c408d 100644
--- a/main.c
+++ b/main.c
@@ -144,7 +144,8 @@ static int send_warning_update(sd_bus *bus, struct upower_device *device) {
static const char usage[] = "usage: %s [options]\n"
"  -h				show this help message\n"
"  -s				ignore the events at startup\n"
"  -i <device_type>		ignore this device type, can be use several times\n";
"  -i <device_type>		ignore this device type, can be use several times\n"
"  -S				only use the events coming from power supplies\n";


int main(int argc, char *argv[]) {
@@ -152,9 +153,10 @@ int main(int argc, char *argv[]) {
	int device_type = 0;
	int ignore_types_mask = 0;
	bool ignore_initial = false;
	bool ignore_non_power_supplies = false;
	bool initialized = false;

	while ((opt = getopt(argc, argv, "hsi:")) != -1) {
	while ((opt = getopt(argc, argv, "hsi:S")) != -1) {
		switch (opt) {
		case 'i':
			device_type = upower_device_type_int(optarg);
@@ -168,6 +170,9 @@ int main(int argc, char *argv[]) {
		case 's':
			ignore_initial = true;
			break;
		case 'S':
			ignore_non_power_supplies = true;
			break;
		case 'h':
		default:
			fprintf(stderr, usage, argv[0]);
@@ -212,6 +217,10 @@ int main(int argc, char *argv[]) {
				goto next_device;
			}

			if (ignore_non_power_supplies && !device->power_supply) {
				goto next_device;
			}

			if (upower_device_has_battery(device)) {
				ret = send_state_update(user_bus, device);
				if (ret < 0) {
@@ -241,6 +250,10 @@ next_device:
				continue;
			}

			if (ignore_non_power_supplies && !device->power_supply) {
				continue;
			}

			ret = send_remove(user_bus, device);
			if (ret < 0) {
				fprintf(stderr, "could not send device removal notification: %s\n", strerror(-ret));
-- 
2.43.2
Applied, thanks!