mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-20 10:34:30 +00:00
config: Reset home page setting in freedombox.conf during migration
While moving the home page configuration to a new file, also reset the home page path in freedombox.conf to its default setting of /plinth. Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com> Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
This commit is contained in:
parent
530423d490
commit
d1d3eae3db
@ -23,6 +23,8 @@ Configuration helper for FreedomBox general configuration.
|
|||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
import augeas
|
||||||
|
|
||||||
from plinth import action_utils
|
from plinth import action_utils
|
||||||
from plinth.modules.config import APACHE_HOMEPAGE_CONF_FILE_NAME
|
from plinth.modules.config import APACHE_HOMEPAGE_CONF_FILE_NAME
|
||||||
|
|
||||||
@ -31,12 +33,19 @@ def parse_arguments():
|
|||||||
"""Return parsed command line arguments as dictionary."""
|
"""Return parsed command line arguments as dictionary."""
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
subparsers = parser.add_subparsers(dest='subcommand', help='Sub command')
|
subparsers = parser.add_subparsers(dest='subcommand', help='Sub command')
|
||||||
|
|
||||||
set_home_page = subparsers.add_parser(
|
set_home_page = subparsers.add_parser(
|
||||||
'set-home-page',
|
'set-home-page',
|
||||||
help='Set the home page for this FreedomBox instance.')
|
help='Set the home page for this FreedomBox instance.')
|
||||||
set_home_page.add_argument('homepage',
|
set_home_page.add_argument('homepage',
|
||||||
help='path to the webserver home page')
|
help='path to the webserver home page')
|
||||||
|
|
||||||
|
reset_home_page = subparsers.add_parser(
|
||||||
|
'reset-home-page', help='Reset the homepage of the Apache server.')
|
||||||
|
reset_home_page.add_argument(
|
||||||
|
'--config', default=APACHE_HOMEPAGE_CONF_FILE_NAME,
|
||||||
|
help='(optional) path to the Apache config file')
|
||||||
|
|
||||||
subparsers.required = True
|
subparsers.required = True
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
@ -54,6 +63,30 @@ def subcommand_set_home_page(arguments):
|
|||||||
action_utils.webserver_enable('freedombox-apache-homepage')
|
action_utils.webserver_enable('freedombox-apache-homepage')
|
||||||
|
|
||||||
|
|
||||||
|
def subcommand_reset_home_page(arguments):
|
||||||
|
"""Sets the Apache web server's home page to the default - /plinth
|
||||||
|
|
||||||
|
The config file path can be optionally passed as an argument.
|
||||||
|
"""
|
||||||
|
config_file = arguments.config
|
||||||
|
default_path = 'plinth'
|
||||||
|
|
||||||
|
aug = augeas.Augeas(
|
||||||
|
flags=augeas.Augeas.NO_LOAD + augeas.Augeas.NO_MODL_AUTOLOAD)
|
||||||
|
aug.set('/augeas/load/Httpd/lens', 'Httpd.lns')
|
||||||
|
aug.set('/augeas/load/Httpd/incl[last() + 1]', config_file)
|
||||||
|
aug.load()
|
||||||
|
|
||||||
|
aug.defvar('conf', '/files' + config_file)
|
||||||
|
|
||||||
|
for match in aug.match('/files' + config_file +
|
||||||
|
'/directive["RedirectMatch"]'):
|
||||||
|
if aug.get(match + "/arg[1]") == '''"^/$"''':
|
||||||
|
aug.set(match + "/arg[2]", '"/{}"'.format(default_path))
|
||||||
|
|
||||||
|
aug.save()
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""Parse arguments and perform all duties."""
|
"""Parse arguments and perform all duties."""
|
||||||
arguments = parse_arguments()
|
arguments = parse_arguments()
|
||||||
|
|||||||
@ -59,8 +59,8 @@ def get_hostname():
|
|||||||
|
|
||||||
def get_home_page():
|
def get_home_page():
|
||||||
"""Get the default application for the domain."""
|
"""Get the default application for the domain."""
|
||||||
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
|
aug = augeas.Augeas(
|
||||||
augeas.Augeas.NO_MODL_AUTOLOAD)
|
flags=augeas.Augeas.NO_LOAD + augeas.Augeas.NO_MODL_AUTOLOAD)
|
||||||
aug.set('/augeas/load/Httpd/lens', 'Httpd.lns')
|
aug.set('/augeas/load/Httpd/lens', 'Httpd.lns')
|
||||||
conf_file = APACHE_HOMEPAGE_CONFIG if os.path.exists(
|
conf_file = APACHE_HOMEPAGE_CONFIG if os.path.exists(
|
||||||
APACHE_HOMEPAGE_CONFIG) else FREEDOMBOX_APACHE_CONFIG
|
APACHE_HOMEPAGE_CONFIG) else FREEDOMBOX_APACHE_CONFIG
|
||||||
@ -120,9 +120,13 @@ def setup(helper, old_version=None):
|
|||||||
def _migrate_home_page_config():
|
def _migrate_home_page_config():
|
||||||
"""Move the home page configuration to an external file."""
|
"""Move the home page configuration to an external file."""
|
||||||
|
|
||||||
# Hold the current default app in a variable
|
# Hold the current home page path in a variable
|
||||||
home_page_path = get_home_page().replace('_', '/')
|
home_page_path = get_home_page().replace('_', '/')
|
||||||
|
|
||||||
# Write the default app setting into the new conf file
|
# Reset the home page to plinth in freedombox.conf
|
||||||
|
actions.superuser_run(
|
||||||
|
'config', ['reset-home-page', '--config', FREEDOMBOX_APACHE_CONFIG])
|
||||||
|
|
||||||
|
# Write the home page setting into the new conf file
|
||||||
# This step is run at the end because it reloads the Apache server
|
# This step is run at the end because it reloads the Apache server
|
||||||
actions.superuser_run('config', ['set-home-page', home_page_path])
|
actions.superuser_run('config', ['set-home-page', home_page_path])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user