char pretty_name[256];
char name[64];
char id[32];
- char version[32];
- char version_id[32];
+ char version[64];
+ char version_codename[32];
+ char version_id[8];
} distro;
};
return 0;
}
+static int pakfire_config_import_distro(Pakfire pakfire) {
+ // Nothing to do if there is no distro section
+ if (!pakfire_config_has_section(pakfire->config, "distro"))
+ return 0;
+
+ // Name
+ const char* name = pakfire_config_get(pakfire->config, "distro", "name", NULL);
+ if (name)
+ pakfire_string_set(pakfire->distro.name, name);
+
+ // ID
+ const char* id = pakfire_config_get(pakfire->config, "distro", "id", NULL);
+ if (id)
+ pakfire_string_set(pakfire->distro.id, id);
+
+ // Version ID
+ const char* version_id = pakfire_config_get(pakfire->config, "distro", "version_id", NULL);
+ if (version_id)
+ pakfire_string_set(pakfire->distro.version_id, version_id);
+
+ // Codename
+ const char* codename = pakfire_config_get(pakfire->config, "distro", "codename", NULL);
+ if (codename)
+ pakfire_string_set(pakfire->distro.version_codename, codename);
+
+ // Fill in version
+ if (*pakfire->distro.version_codename)
+ pakfire_string_format(pakfire->distro.version, "%s (%s)",
+ pakfire->distro.version_id, pakfire->distro.version_codename);
+ else
+ pakfire_string_set(pakfire->distro.version, pakfire->distro.version_id);
+
+ // Fill in pretty name
+ pakfire_string_format(pakfire->distro.pretty_name, "%s %s",
+ pakfire->distro.name, pakfire->distro.version);
+
+ return 0;
+}
+
static int pakfire_read_config(Pakfire pakfire, const char* path) {
char* default_path = NULL;
if (r)
goto ERROR;
+ // Import distro configuration
+ r = pakfire_config_import_distro(pakfire);
+ if (r)
+ goto ERROR;
+
ERROR:
fclose(f);
r = pakfire_string_set(pakfire->distro.id, val);
else if (strcmp(key, "VERSION") == 0)
r = pakfire_string_set(pakfire->distro.version, val);
+ else if (strcmp(key, "VERSION_CODENAME") == 0)
+ r = pakfire_string_set(pakfire->distro.version_codename, val);
else if (strcmp(key, "VERSION_ID") == 0)
r = pakfire_string_set(pakfire->distro.version_id, val);
else