summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Pitt <martin.pitt@ubuntu.com>2015-01-28 08:00:28 +0100
committerMartin Pitt <martin.pitt@ubuntu.com>2015-01-28 08:00:28 +0100
commit40780877c19ef408da8ab21f4156cfc153f94b5c (patch)
treeab38f84d165026ccebea4ca5e3275231216271cd /src
parent78eb158a20e2bee772f6e49d8b432b98f68cbb55 (diff)
sysv-generator: Re-fix .sh suffix handling
Commit 4e48855534 caused the .sh suffix to be stripped from the original "filename", which caused the generated units to call the wrong init.d script. Only use the .sh stripped file name for comparing with Provides:, not for generating the Exec*= lines. Spotted by sysv-generator-test.
Diffstat (limited to 'src')
-rw-r--r--src/sysv-generator/sysv-generator.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
index 09ade0dc3a..662d08cccb 100644
--- a/src/sysv-generator/sysv-generator.c
+++ b/src/sysv-generator/sysv-generator.c
@@ -299,11 +299,9 @@ static int sysv_translate_facility(const char *name, const char *filename, char
/* strip ".sh" suffix from file name for comparison */
filename_no_sh = strdupa(filename);
- e = endswith(filename, ".sh");
- if (e) {
+ e = endswith(filename_no_sh, ".sh");
+ if (e)
*e = '\0';
- filename = filename_no_sh;
- }
/* If we don't know this name, fallback heuristics to figure
* out whether something is a target or a service alias. */
@@ -314,7 +312,7 @@ static int sysv_translate_facility(const char *name, const char *filename, char
/* Facilities starting with $ are most likely targets */
r = unit_name_build(n, NULL, ".target");
- } else if (filename && streq(name, filename))
+ } else if (filename && streq(name, filename_no_sh))
/* Names equaling the file name of the services are redundant */
return 0;
else