diff --git a/data/hooks/diagnosis/70-regenconf.py b/data/hooks/diagnosis/70-regenconf.py index 94c41feb5..105d43fa3 100644 --- a/data/hooks/diagnosis/70-regenconf.py +++ b/data/hooks/diagnosis/70-regenconf.py @@ -2,6 +2,7 @@ import os +import subprocess from yunohost.diagnosis import Diagnoser from yunohost.regenconf import manually_modified_files, manually_modified_files_compared_to_debian_default @@ -14,6 +15,19 @@ class RegenconfDiagnoser(Diagnoser): def run(self): + # nginx -t + p = subprocess.Popen("nginx -t".split(), + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + out, _ = p.communicate() + + if p.returncode != 0: + yield dict(meta={"test": "nginx-t"}, + status="ERROR", + summary=("diagnosis_regenconf_nginx_conf_broken", {}), + details=[(out, ())] + ) + regenconf_modified_files = manually_modified_files() debian_modified_files = manually_modified_files_compared_to_debian_default(ignore_handled_by_regenconf=True) diff --git a/locales/en.json b/locales/en.json index 105891571..f06310679 100644 --- a/locales/en.json +++ b/locales/en.json @@ -179,12 +179,14 @@ "diagnosis_regenconf_manually_modified_details": "This is probably OK as long as you know what you're doing ;) !", "diagnosis_regenconf_manually_modified_debian": "Configuration file {file} was manually modified compared to Debian's default.", "diagnosis_regenconf_manually_modified_debian_details": "This may probably be OK, but gotta keep an eye on it...", + "diagnosis_regenconf_nginx_conf_broken": "The nginx configuration appears to be broken!", "diagnosis_description_ip": "Internet connectivity", "diagnosis_description_dnsrecords": "DNS records", "diagnosis_description_services": "Services status check", "diagnosis_description_diskusage": "Disk usage", "diagnosis_description_ports": "Ports exposure", "diagnosis_description_http": "HTTP exposure", + "diagnosis_description_regenconf": "System configurations", "diagnosis_ports_could_not_diagnose": "Could not diagnose if ports are reachable from outside. Error: {error}", "diagnosis_ports_unreachable": "Port {port} is not reachable from outside.", "diagnosis_ports_ok": "Port {port} is reachable from outside.",