Merge pull request #24746 from DaanDeMeyer/repart-split

repart: Add --split option to generate split artifacts
This commit is contained in:
Daan De Meyer
2022-09-22 19:09:12 +02:00
committed by GitHub
6 changed files with 306 additions and 38 deletions
+3
View File
@@ -16,6 +16,9 @@ const char *gpt_partition_type_uuid_to_string_harder(
char buffer[static SD_ID128_UUID_STRING_MAX]);
int gpt_partition_type_uuid_from_string(const char *s, sd_id128_t *ret);
#define GPT_PARTITION_TYPE_UUID_TO_STRING_HARDER(id) \
gpt_partition_type_uuid_to_string_harder((id), (char[SD_ID128_UUID_STRING_MAX]) {})
Architecture gpt_partition_type_uuid_to_arch(sd_id128_t id);
typedef struct GptPartitionType {
+32 -14
View File
@@ -151,9 +151,38 @@ int specifier_real_directory(char specifier, const void *data, const char *root,
return path_extract_directory(path, ret);
}
int specifier_id128(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
const sd_id128_t *id = ASSERT_PTR(data);
char *n;
n = new(char, SD_ID128_STRING_MAX);
if (!n)
return -ENOMEM;
*ret = sd_id128_to_string(*id, n);
return 0;
}
int specifier_uuid(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
const sd_id128_t *id = ASSERT_PTR(data);
char *n;
n = new(char, SD_ID128_UUID_STRING_MAX);
if (!n)
return -ENOMEM;
*ret = sd_id128_to_uuid_string(*id, n);
return 0;
}
int specifier_uint64(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
const uint64_t *n = ASSERT_PTR(data);
return asprintf(ret, "%" PRIu64, *n) < 0 ? -ENOMEM : 0;
}
int specifier_machine_id(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
sd_id128_t id;
char *n;
int r;
assert(ret);
@@ -172,17 +201,11 @@ int specifier_machine_id(char specifier, const void *data, const char *root, con
if (r < 0)
return r;
n = new(char, SD_ID128_STRING_MAX);
if (!n)
return -ENOMEM;
*ret = sd_id128_to_string(id, n);
return 0;
return specifier_id128(specifier, &id, root, userdata, ret);
}
int specifier_boot_id(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
sd_id128_t id;
char *n;
int r;
assert(ret);
@@ -191,12 +214,7 @@ int specifier_boot_id(char specifier, const void *data, const char *root, const
if (r < 0)
return r;
n = new(char, SD_ID128_STRING_MAX);
if (!n)
return -ENOMEM;
*ret = sd_id128_to_string(id, n);
return 0;
return specifier_id128(specifier, &id, root, userdata, ret);
}
int specifier_hostname(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
+3
View File
@@ -16,6 +16,9 @@ int specifier_printf(const char *text, size_t max_length, const Specifier table[
int specifier_string(char specifier, const void *data, const char *root, const void *userdata, char **ret);
int specifier_real_path(char specifier, const void *data, const char *root, const void *userdata, char **ret);
int specifier_real_directory(char specifier, const void *data, const char *root, const void *userdata, char **ret);
int specifier_id128(char specifier, const void *data, const char *root, const void *userdata, char **ret);
int specifier_uuid(char specifier, const void *data, const char *root, const void *userdata, char **ret);
int specifier_uint64(char specifier, const void *data, const char *root, const void *userdata, char **ret);
int specifier_machine_id(char specifier, const void *data, const char *root, const void *userdata, char **ret);
int specifier_boot_id(char specifier, const void *data, const char *root, const void *userdata, char **ret);