diff options
author | Miklos Vajna <vmiklos@frugalware.org> | 2010-12-07 22:51:21 +0100 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2010-12-16 14:22:21 +0100 |
commit | 65530632c7e40bc369edcba8f014ec9136c8eb02 (patch) | |
tree | 3714484da4940902689f1373c985b59e2759f219 /src | |
parent | 2dddca4a8d5d7550860ec90b401eb29735d1b846 (diff) |
service: drop rc. prefix on frugalware linux
Diffstat (limited to 'src')
-rw-r--r-- | src/service.c | 17 |
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; |