mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
generator: optionally return resulting unit file path in generator_open_unit_file_full()
This is useful if we want to make symlinks to it later.
This commit is contained in:
@@ -28,7 +28,13 @@ static int network_save(Network *network, const char *dest_dir) {
|
||||
|
||||
assert(network);
|
||||
|
||||
r = generator_open_unit_file_full(dest_dir, NULL, NULL, &f, &temp_path);
|
||||
r = generator_open_unit_file_full(
|
||||
dest_dir,
|
||||
/* source= */ NULL,
|
||||
/* name= */ NULL,
|
||||
&f,
|
||||
/* ret_final_path= */ NULL,
|
||||
&temp_path);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -56,7 +62,13 @@ static int netdev_save(NetDev *netdev, const char *dest_dir) {
|
||||
|
||||
assert(netdev);
|
||||
|
||||
r = generator_open_unit_file_full(dest_dir, NULL, NULL, &f, &temp_path);
|
||||
r = generator_open_unit_file_full(
|
||||
dest_dir,
|
||||
/* source= */ NULL,
|
||||
/* name= */ NULL,
|
||||
&f,
|
||||
/* ret_final_path= */ NULL,
|
||||
&temp_path);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -81,7 +93,13 @@ static int link_save(Link *link, const char *dest_dir) {
|
||||
|
||||
assert(link);
|
||||
|
||||
r = generator_open_unit_file_full(dest_dir, NULL, NULL, &f, &temp_path);
|
||||
r = generator_open_unit_file_full(
|
||||
dest_dir,
|
||||
/* source= */ NULL,
|
||||
/* name= */ NULL,
|
||||
&f,
|
||||
/* ret_final_path= */ NULL,
|
||||
&temp_path);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ int generator_open_unit_file_full(
|
||||
const char *source,
|
||||
const char *fn,
|
||||
FILE **ret_file,
|
||||
char **ret_final_path,
|
||||
char **ret_temp_path) {
|
||||
|
||||
_cleanup_free_ char *p = NULL;
|
||||
@@ -72,6 +73,10 @@ int generator_open_unit_file_full(
|
||||
program_invocation_short_name);
|
||||
|
||||
*ret_file = f;
|
||||
|
||||
if (ret_final_path)
|
||||
*ret_final_path = TAKE_PTR(p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
#include "macro.h"
|
||||
#include "main-func.h"
|
||||
|
||||
int generator_open_unit_file_full(const char *dest, const char *source, const char *name, FILE **ret_file, char **ret_temp_path);
|
||||
int generator_open_unit_file_full(const char *dest, const char *source, const char *name, FILE **ret_file, char **ret_final_path, char **ret_temp_path);
|
||||
|
||||
static inline int generator_open_unit_file(const char *dest, const char *source, const char *name, FILE **ret_file) {
|
||||
return generator_open_unit_file_full(dest, source, name, ret_file, NULL);
|
||||
return generator_open_unit_file_full(dest, source, name, ret_file, NULL, NULL);
|
||||
}
|
||||
|
||||
int generator_add_symlink_full(const char *dir, const char *dst, const char *dep_type, const char *src, const char *instance);
|
||||
|
||||
Reference in New Issue
Block a user