chiark / gitweb /
util: Add welcome message for Ubuntu
authorAndrew Edmunds <Andrew.Edmunds@yahoo.com.au>
Mon, 25 Oct 2010 13:23:21 +0000 (23:23 +1000)
committerLennart Poettering <lennart@poettering.net>
Mon, 25 Oct 2010 19:10:05 +0000 (21:10 +0200)
The approved method for determining the installed release of
Ubuntu is to execute "lsb_release".  However, this is in /usr/bin and
is implemented in python so it is not safe to execute at this early
stage of booting.  This code parses /etc/lsb-release which is
where "lsb_release" looks for the information.

src/util.c

index 98422b236d263cd9f0f7e1580e5b5696361c1ed7..973cee15e31a2d55fc49be2f2a9366d449f8a039 100644 (file)
@@ -3025,6 +3025,20 @@ void status_welcome(void) {
         status_printf("Welcome to Debian \x1B[1;31m%s\x1B[0m!\n", r); /* Light Red for Debian */
 
         free(r);
         status_printf("Welcome to Debian \x1B[1;31m%s\x1B[0m!\n", r); /* Light Red for Debian */
 
         free(r);
+#elif defined(TARGET_UBUNTU)
+        char *desc = NULL;
+        char *codename = NULL;
+
+        if (parse_env_file("/etc/lsb-release", NEWLINE,
+                "DISTRIB_DESCRIPTION", &desc,
+                "DISTRIB_CODENAME", &codename, NULL) < 0)
+                return;
+        if (desc && codename)
+                /* Light Red for Ubuntu */
+                status_printf("Welcome to \x1B[1;31m%s\x1B[0m (%s)\n",
+                        desc, codename);
+        free(desc);
+        free(codename);
 #elif defined(TARGET_ARCH)
         status_printf("Welcome to \x1B[1;36mArch Linux\x1B[0m!\n"); /* Cyan for Arch */
 #else
 #elif defined(TARGET_ARCH)
         status_printf("Welcome to \x1B[1;36mArch Linux\x1B[0m!\n"); /* Cyan for Arch */
 #else