Also parse it early, so that we can get it in the initramfs.
int main(int argc, char *argv[])
{
int main(int argc, char *argv[])
{
+ _cleanup_free_ char *build = NULL;
struct sigaction sig;
struct ps_struct *ps;
char output_file[PATH_MAX];
struct sigaction sig;
struct ps_struct *ps;
char output_file[PATH_MAX];
sysfd = open("/sys", O_RDONLY);
}
sysfd = open("/sys", O_RDONLY);
}
+ if (!build) {
+ parse_env_file("/etc/os-release", NEWLINE,
+ "PRETTY_NAME", &build,
+ NULL);
+ }
+
/* wait for /proc to become available, discarding samples */
if (!(graph_start > 0.0))
log_uptime();
/* wait for /proc to become available, discarding samples */
if (!(graph_start > 0.0))
log_uptime();
fprintf(stderr, "bootchartd: Wrote %s\n", output_file);
fclose(of);
fprintf(stderr, "bootchartd: Wrote %s\n", output_file);
fclose(of);
extern void log_uptime(void);
extern void log_sample(int sample);
extern void log_uptime(void);
extern void log_sample(int sample);
-extern void svg_do(void);
+extern void svg_do(const char *build);
-static void svg_title(void)
+static void svg_title(const char *build)
{
char cmdline[256] = "";
char filename[PATH_MAX];
{
char cmdline[256] = "";
char filename[PATH_MAX];
char model[256] = "Unknown";
char date[256] = "Unknown";
char cpu[256] = "Unknown";
char model[256] = "Unknown";
char date[256] = "Unknown";
char cpu[256] = "Unknown";
- char build[256] = "Unknown";
char *c;
FILE *f;
time_t t;
char *c;
FILE *f;
time_t t;
- /* Build - 1st line from /etc/system-release */
- f = fopen("/etc/system-release", "r");
- if (f) {
- if (fgets(buf, 255, f))
- strncpy(build, buf, 255);
- fclose(f);
- }
-
svg("<text class=\"t1\" x=\"0\" y=\"30\">Bootchart for %s - %s</text>\n",
uts.nodename, date);
svg("<text class=\"t2\" x=\"20\" y=\"50\">System: %s %s %s %s</text>\n",
svg("<text class=\"t1\" x=\"0\" y=\"30\">Bootchart for %s - %s</text>\n",
uts.nodename, date);
svg("<text class=\"t2\" x=\"20\" y=\"50\">System: %s %s %s %s</text>\n",
+void svg_do(const char *build)
svg("</g>\n\n");
svg("<g transform=\"translate(10, 0)\">\n");
svg("</g>\n\n");
svg("<g transform=\"translate(10, 0)\">\n");
svg("</g>\n\n");
svg("<g transform=\"translate(10,200)\">\n");
svg("</g>\n\n");
svg("<g transform=\"translate(10,200)\">\n");