diff options
| author | Mattias Andrée <maandree@kth.se> | 2021-04-03 02:28:44 +0200 | 
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2021-04-03 02:28:44 +0200 | 
| commit | 49e4bd18d29d5ef9c85d106026b09d86de6ff19c (patch) | |
| tree | acaad00d8d6df3a9dd6f0780fb837933b6ccddfd /set-contact-ice.c | |
| download | contacts-49e4bd18d29d5ef9c85d106026b09d86de6ff19c.tar.gz contacts-49e4bd18d29d5ef9c85d106026b09d86de6ff19c.tar.bz2 contacts-49e4bd18d29d5ef9c85d106026b09d86de6ff19c.tar.xz  | |
First commmit
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'set-contact-ice.c')
| -rw-r--r-- | set-contact-ice.c | 50 | 
1 files changed, 50 insertions, 0 deletions
diff --git a/set-contact-ice.c b/set-contact-ice.c new file mode 100644 index 0000000..2dcb612 --- /dev/null +++ b/set-contact-ice.c @@ -0,0 +1,50 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" + +USAGE("[-u] contact-id ..."); + + +int +main(int argc, char *argv[]) +{ +	int set_ice = 1, ret = 0; +	struct passwd *user; +	struct libcontacts_contact contact; +	size_t i; + +	ARGBEGIN { +	case 'u': +		set_ice = 0; +		break; +	default: +		usage(); +	} ARGEND; + +	if (!argc) +		usage(); + +	for (i = 0; argv[i]; i++) +		if (!*argv[i] || strchr(argv[i], '/')) +			usage(); + +	errno = 0; +	user = getpwuid(getuid()); +	if (!user) +		eprintf("getpwuid: %s\n", errno ? strerror(errno) : "user does not exist"); + +	for (; *argv; argv++) { +		if (libcontacts_load_contact(*argv, &contact, user)) { +			weprintf("libcontacts_load_contact %s: %s\n", *argv, errno ? strerror(errno) : "contact file is malformatted"); +			ret = 1; +		} else { +			contact.in_case_of_emergency = set_ice; +			if (libcontacts_save_contact(&contact, user)) { +				weprintf("libcontacts_save_contact %s:", *argv); +				ret = 1; +			} +			libcontacts_contact_destroy(&contact); +		} +	} + +	return ret; +}  | 
