Skip to content

Commit 2ee8a58

Browse files
committed
PMIND-68: install_wsc.py
1 parent a89b5ba commit 2ee8a58

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

scripts/install_wsc.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,41 @@
11
from imio.helpers.security import setup_app
22
from imio.helpers.security import setup_logger
33
from imio.webspellchecker import config as webspellchecker_config
4+
from imio.webspellchecker.interfaces import IImioWebspellcheckerLayer
45
from os import getenv
56
from plone import api
7+
from plone.browserlayer.utils import registered_layers
68
from Products.PloneMeeting import logger
79

810
import logging
9-
import sys
1011
import transaction
1112

1213

1314
setup_logger(level=logging.INFO)
1415
setup_app(app)
1516
with api.env.adopt_user(username="admin"):
16-
logger.info("Installing webspellchecker...")
17+
if IImioWebspellcheckerLayer not in registered_layers():
18+
logger.info("Installing webspellchecker...")
19+
portal = api.portal.get()
20+
portal.portal_setup.runImportStepFromProfile(
21+
'profile-Products.PloneMeeting:default',
22+
'PloneMeeting-Install-Imio-Webspellchecker')
23+
logger.info("Installed webspellchecker.")
24+
else:
25+
logger.info("Webspellchecker already installed. Skipping installation.")
26+
1727
WSC_JS_BUNDLE_URL = getenv("WSC_JS_BUNDLE_URL")
1828
WSC_SERVICE_URL = getenv("WSC_SERVICE_URL")
19-
if not WSC_JS_BUNDLE_URL or not WSC_SERVICE_URL:
20-
logger.error("Missing webspellchecker environment variables. Aborting installation.")
21-
sys.exit(-1)
29+
if WSC_SERVICE_URL:
30+
webspellchecker_config.set_service_url(WSC_SERVICE_URL.decode('utf-8'))
31+
logger.info("WSC_SERVICE_URL set to %s.", WSC_SERVICE_URL)
32+
if WSC_JS_BUNDLE_URL:
33+
webspellchecker_config.set_js_bundle_url(WSC_JS_BUNDLE_URL.decode('utf-8'))
34+
logger.info("WSC_JS_BUNDLE_URL set to %s.", WSC_JS_BUNDLE_URL)
35+
36+
WSC_DISABLE = getenv("WSC_DISABLE")
37+
if WSC_DISABLE:
38+
webspellchecker_config.set_enabled(False)
39+
logger.info("Webspellchecker disabled.")
2240

23-
portal = api.portal.get()
24-
portal.portal_setup.runImportStepFromProfile(
25-
'profile-Products.PloneMeeting:default',
26-
'PloneMeeting-Install-Imio-Webspellchecker')
27-
webspellchecker_config.set_js_bundle_url(WSC_JS_BUNDLE_URL.decode('utf-8'))
28-
webspellchecker_config.set_service_url(WSC_SERVICE_URL.decode('utf-8'))
2941
transaction.commit()
30-
logger.info("Installed webspellchecker.")

0 commit comments

Comments
 (0)