chiark / gitweb /
service: drop rc. prefix on frugalware linux
[elogind.git] / src / service.c
index 1f478f4386b4071daf845ad3e75bf886666ca8e6..620f2b307ab20e345c7b2db1a340442fec5a3af2 100644 (file)
@@ -247,6 +247,11 @@ static char *sysv_translate_name(const char *name) {
         else if (startswith(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 */
@@ -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;