add check service in install file match with manifest (new services)

This commit is contained in:
Mickael 2019-02-27 13:47:26 +01:00 committed by Alexandre Aubin
parent e89e613f9e
commit 02ba265abd

View file

@ -315,15 +315,16 @@ class App():
print_error( print_error(
"[YEP-2.1] \"multi_instance\" field must be boolean type values 'true' or 'false' and not string type") "[YEP-2.1] \"multi_instance\" field must be boolean type values 'true' or 'false' and not string type")
if "services" in manifest: if "services" in manifest and self.scripts["install"].exists:
services = ("nginx", "mysql", "uwsgi", "metronome",
known_services = ("nginx", "mysql", "uwsgi", "metronome",
"php5-fpm", "php7.0-fpm", "php-fpm", "php5-fpm", "php7.0-fpm", "php-fpm",
"postfix", "dovecot", "rspamd") "postfix", "dovecot", "rspamd")
for service in manifest["services"]: for service in manifest["services"]:
if service not in services: if service not in known_services:
# FIXME : wtf is it supposed to mean ... if not self.scripts["install"].contains("yunohost service add %s" % service):
print_warning("[YEP-2.1] " + service + " service may not exist") print_error("[YEP-2.1?] " + service + " service not installed by the install file but present in the manifest")
if "install" in manifest["arguments"]: if "install" in manifest["arguments"]:
@ -379,6 +380,7 @@ class Script():
lines = '\n'.join(lines).replace("\\\n", "").split("\n") lines = '\n'.join(lines).replace("\\\n", "").split("\n")
for line in lines: for line in lines:
try: try:
line = shlex.split(line, True) line = shlex.split(line, True)
yield line yield line
@ -392,7 +394,7 @@ class Script():
For instance, "app setting" is contained in "yunohost app setting $app ..." For instance, "app setting" is contained in "yunohost app setting $app ..."
""" """
return any(command in line return any(command in line
for line in [ ' '.join(line) for line in self.lines]) for line in [' '.join(line) for line in self.lines])
def analyze(self): def analyze(self):