chiark / gitweb /
service: drop rc. prefix on frugalware linux
authorMiklos Vajna <vmiklos@frugalware.org>
Tue, 7 Dec 2010 21:51:21 +0000 (22:51 +0100)
committerKay Sievers <kay.sievers@vrfy.org>
Thu, 16 Dec 2010 13:22:21 +0000 (14:22 +0100)
src/service.c

index 1f478f4..620f2b3 100644 (file)
@@ -248,6 +248,11 @@ static char *sysv_translate_name(const char *name) {
                 /* Drop Arch-style background prefix */
                 strcpy(stpcpy(r, name + 1), ".service");
 #endif
+#ifdef TARGET_FRUGALWARE
+        else if (startswith(name, "rc."))
+                /* Drop Frugalware-style rc. prefix */
+                strcpy(stpcpy(r, name + 3), ".service");
+#endif
         else
                 /* Normal init scripts */
                 strcpy(stpcpy(r, name), ".service");
@@ -887,6 +892,18 @@ static int service_load_sysv_name(Service *s, const char *name) {
                         free(path);
                 }
 
+                if (r >= 0 && s->meta.load_state == UNIT_STUB) {
+                        /* Try Frugalware style rc.xxx init scripts */
+
+                        if (asprintf(&path, "%s/rc.%s", *p, name) < 0)
+                                return -ENOMEM;
+
+                       /* Drop .service suffix */
+                        path[strlen(path)-8] = 0;
+                        r = service_load_sysv_path(s, path);
+                        free(path);
+                }
+
                 if (r < 0)
                         return r;