os-util: merge parse_{extension,os}_release()

This commit is contained in:
Yu Watanabe
2023-04-11 18:49:23 +09:00
parent 7ef43c78df
commit f4a1d32c82
2 changed files with 14 additions and 28 deletions
+9 -24
View File
@@ -242,40 +242,25 @@ int open_extension_release(
return 0;
}
static int parse_release_internal(const char *root, ImageClass image_class, bool relax_extension_release_check, const char *extension, va_list ap) {
int parse_extension_release_sentinel(
const char *root,
ImageClass image_class,
bool relax_extension_release_check,
const char *extension,
...) {
_cleanup_close_ int fd = -EBADF;
_cleanup_free_ char *p = NULL;
va_list ap;
int r;
r = open_extension_release(root, image_class, extension, relax_extension_release_check, &p, &fd);
if (r < 0)
return r;
return parse_env_file_fdv(fd, p, ap);
}
int _parse_extension_release(const char *root, ImageClass image_class, bool relax_extension_release_check, const char *extension, ...) {
va_list ap;
int r;
assert(image_class >= 0);
assert(image_class < _IMAGE_CLASS_MAX);
va_start(ap, extension);
r = parse_release_internal(root, image_class, relax_extension_release_check, extension, ap);
r = parse_env_file_fdv(fd, p, ap);
va_end(ap);
return r;
}
int _parse_os_release(const char *root, ...) {
va_list ap;
int r;
va_start(ap, root);
r = parse_release_internal(root, _IMAGE_CLASS_INVALID, /* relax_extension_release_check= */ false, NULL, ap);
va_end(ap);
return r;
}