fix: refactor InstallHandler slightly, for easier customization
This commit is contained in:
parent
3b096061e3
commit
d6eca8db50
1 changed files with 43 additions and 5 deletions
|
|
@ -161,6 +161,17 @@ class InstallHandler(GenericHandler):
|
|||
any problem is found the installer should exit with code 2.
|
||||
|
||||
This is normally called by :meth:`run()`.
|
||||
|
||||
The default logic here just calls :meth:`check_appdir()`.
|
||||
"""
|
||||
self.check_appdir()
|
||||
|
||||
def check_appdir(self):
|
||||
"""
|
||||
Check if the :term:`app dir` already exists; exit with code 2
|
||||
if so.
|
||||
|
||||
This is normally called from :meth:`sanity_check()`.
|
||||
"""
|
||||
# appdir must not yet exist
|
||||
appdir = os.path.join(sys.prefix, "app")
|
||||
|
|
@ -340,19 +351,48 @@ class InstallHandler(GenericHandler):
|
|||
|
||||
File templates for this come from
|
||||
``wuttjamaican:templates/install`` by default.
|
||||
|
||||
This method calls
|
||||
:meth:`~wuttjamaican.app.AppHandler.make_appdir()` for the
|
||||
basic structure and then :meth:`write_all_config_files()` for
|
||||
the gory details.
|
||||
"""
|
||||
# app handler makes appdir proper
|
||||
appdir = appdir or self.app.get_appdir()
|
||||
self.app.make_appdir(appdir)
|
||||
|
||||
# but then we also generate some files...
|
||||
self.write_all_config_files(appdir, context)
|
||||
|
||||
# wutta.conf
|
||||
self.rprint(f"\n\tappdir created at: [bold green]{appdir}[/bold green]")
|
||||
|
||||
def write_all_config_files(self, appdir, context):
|
||||
"""
|
||||
This method should write all config files within the app dir.
|
||||
It's called from :meth:`make_appdir()`.
|
||||
|
||||
Subclass can override this for specialized installers.
|
||||
|
||||
Note that the app dir may or may not be newly-created, when
|
||||
this method is called. Some installers may support a
|
||||
"refresh" of the existing app dir.
|
||||
|
||||
Default logic (over)writes 3 files:
|
||||
|
||||
* ``wutta.conf``
|
||||
* ``web.cof``
|
||||
* ``upgrade.sh``
|
||||
"""
|
||||
self.write_wutta_conf(appdir, context)
|
||||
self.write_web_conf(appdir, context)
|
||||
self.write_upgrade_sh(appdir, context)
|
||||
|
||||
def write_wutta_conf(self, appdir, context):
|
||||
self.make_config_file(
|
||||
"wutta.conf.mako", os.path.join(appdir, "wutta.conf"), **context
|
||||
)
|
||||
|
||||
# web.conf
|
||||
def write_web_conf(self, appdir, context):
|
||||
web_context = dict(context)
|
||||
web_context.setdefault("beaker_key", context.get("pkg_name", "poser"))
|
||||
web_context.setdefault("beaker_secret", "TODO_YOU_SHOULD_CHANGE_THIS")
|
||||
|
|
@ -362,7 +402,7 @@ class InstallHandler(GenericHandler):
|
|||
"web.conf.mako", os.path.join(appdir, "web.conf"), **web_context
|
||||
)
|
||||
|
||||
# upgrade.sh
|
||||
def write_upgrade_sh(self, appdir, context):
|
||||
template = self.templates.get_template("upgrade.sh.mako")
|
||||
output_path = os.path.join(appdir, "upgrade.sh")
|
||||
self.render_mako_template(template, context, output_path=output_path)
|
||||
|
|
@ -371,8 +411,6 @@ class InstallHandler(GenericHandler):
|
|||
stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH,
|
||||
)
|
||||
|
||||
self.rprint(f"\n\tappdir created at: [bold green]{appdir}[/bold green]")
|
||||
|
||||
def render_mako_template(
|
||||
self,
|
||||
template,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue