summaryrefslogtreecommitdiff
path: root/src/service.c
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@frugalware.org>2010-12-07 22:51:21 +0100
committerKay Sievers <kay.sievers@vrfy.org>2010-12-16 14:22:21 +0100
commit65530632c7e40bc369edcba8f014ec9136c8eb02 (patch)
tree3714484da4940902689f1373c985b59e2759f219 /src/service.c
parent2dddca4a8d5d7550860ec90b401eb29735d1b846 (diff)
service: drop rc. prefix on frugalware linux
Diffstat (limited to 'src/service.c')
-rw-r--r--src/service.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c
index 1f478f4386..620f2b307a 100644
--- a/src/service.c
+++ b/src/service.c
@@ -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;