diff --git a/actions/diaspora b/actions/diaspora index 4a4795bae..ee464f645 100755 --- a/actions/diaspora +++ b/actions/diaspora @@ -129,21 +129,20 @@ def subcommand_disable_user_registrations(_): def subcommand_pre_install(_): """Pre installation configuration for diaspora""" presets = [ - b'diaspora-common diaspora-common/url string dummy_domain_name', - b'diaspora-common diaspora-common/dbpass note ', - b'diaspora-common diaspora-common/enablessl boolean false', - b'diaspora-common diaspora-common/useletsencrypt string false', - b'diaspora-common diaspora-common/services multiselect ', - b'diaspora-common diaspora-common/ssl boolean false', - b'diaspora-common diaspora-common/pgsql/authmethod-admin string ident', - b'diaspora-common diaspora-common/letsencrypt boolean false', - b'diaspora-common diaspora-common/remote/host string localhost', - b'diaspora-common diaspora-common/database-type string pgsql', - b'diaspora-common diaspora-common/dbconfig-install boolean true' + 'diaspora-common diaspora-common/url string dummy_domain_name', + 'diaspora-common diaspora-common/dbpass note ', + 'diaspora-common diaspora-common/enablessl boolean false', + 'diaspora-common diaspora-common/useletsencrypt string false', + 'diaspora-common diaspora-common/services multiselect ', + 'diaspora-common diaspora-common/ssl boolean false', + 'diaspora-common diaspora-common/pgsql/authmethod-admin string ident', + 'diaspora-common diaspora-common/letsencrypt boolean false', + 'diaspora-common diaspora-common/remote/host string localhost', + 'diaspora-common diaspora-common/database-type string pgsql', + 'diaspora-common diaspora-common/dbconfig-install boolean true' ] - for preset in presets: - subprocess.check_output(['debconf-set-selections'], input=preset) + action_utils.debconf_set_selections(presets) def main(): diff --git a/actions/ejabberd b/actions/ejabberd index 8e7fb4fbe..f753ecca6 100755 --- a/actions/ejabberd +++ b/actions/ejabberd @@ -100,9 +100,8 @@ def subcommand_pre_install(arguments): # If new domainname is blank, use hostname instead. domainname = socket.gethostname() - subprocess.check_output( - ['debconf-set-selections'], - input=b'ejabberd ejabberd/hostname string ' + domainname.encode()) + action_utils.debconf_set_selections( + ['ejabberd ejabberd/hostname string ' + domainname]) def subcommand_setup(arguments): diff --git a/actions/mldonkey b/actions/mldonkey index 942dadeb1..013085225 100755 --- a/actions/mldonkey +++ b/actions/mldonkey @@ -21,7 +21,8 @@ Configuration helper for mldonkey. """ import argparse -import subprocess + +from plinth import action_utils def parse_arguments(): @@ -37,9 +38,8 @@ def parse_arguments(): def subcommand_pre_install(_): """Preseed debconf values before packages are installed.""" - subprocess.check_output([ - 'debconf-set-selections' - ], input=b'mldonkey-server mldonkey-server/launch_at_startup boolean true') + action_utils.debconf_set_selections( + ['mldonkey-server mldonkey-server/launch_at_startup boolean true']) def main(): diff --git a/actions/privoxy b/actions/privoxy index fdf58904c..20e6a0d37 100755 --- a/actions/privoxy +++ b/actions/privoxy @@ -15,13 +15,13 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # - """ Configuration helper for Privoxy server. """ import argparse -import subprocess + +from plinth import action_utils def parse_arguments(): @@ -39,10 +39,8 @@ def parse_arguments(): def subcommand_pre_install(_): """Preseed debconf values before packages are installed.""" - subprocess.run( - ['debconf-set-selections'], - input=b'privoxy privoxy/listen-address string [::]:8118', - check=True) + action_utils.debconf_set_selections( + ['privoxy privoxy/listen-address string [::]:8118']) def main(): diff --git a/actions/roundcube b/actions/roundcube index bb14d41ad..3396b6868 100755 --- a/actions/roundcube +++ b/actions/roundcube @@ -21,7 +21,6 @@ Configuration helper for Roundcube server. import argparse import re -import subprocess from plinth import action_utils @@ -44,12 +43,10 @@ def parse_arguments(): def subcommand_pre_install(_): """Preseed debconf values before packages are installed.""" - subprocess.check_output( - ['debconf-set-selections'], - input=b'roundcube-core roundcube/dbconfig-install boolean true') - subprocess.check_output( - ['debconf-set-selections'], - input=b'roundcube-core roundcube/database-type string sqlite3') + action_utils.debconf_set_selections([ + 'roundcube-core roundcube/dbconfig-install boolean true', + 'roundcube-core roundcube/database-type string sqlite3' + ]) def subcommand_setup(_): diff --git a/actions/ttrss b/actions/ttrss index 012f662e6..ec4bb7a05 100755 --- a/actions/ttrss +++ b/actions/ttrss @@ -51,8 +51,8 @@ def parse_arguments(): def subcommand_pre_setup(_): """Preseed debconf values before packages are installed.""" - subprocess.check_output(['debconf-set-selections'], - input=b'tt-rss tt-rss/database-type string pgsql') + action_utils.debconf_set_selections( + ['tt-rss tt-rss/database-type string pgsql']) def subcommand_setup(_): diff --git a/plinth/action_utils.py b/plinth/action_utils.py index 93012f334..8b973dc1b 100644 --- a/plinth/action_utils.py +++ b/plinth/action_utils.py @@ -529,6 +529,12 @@ Owners: {package} pass +def debconf_set_selections(presets): + """Answer debconf questions before installing a package.""" + presets = '\n'.join(presets) + subprocess.check_output(['debconf-set-selections'], input=presets.encode()) + + def is_disk_image(): """Return whether the current machine is from a disk image.