[PATCH 2/2] Add shell spoke to s390x installations

Radek Vykydal rvykydal at redhat.com
Tue Oct 15 09:32:56 UTC 2013


Looks good to me.

On 10/08/2013 02:08 PM, Vratislav Podzimek wrote:
> We cannot run tmux on s390x, so we should give users a different way to enter
> the shell.
>
> Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
> ---
>   pyanaconda/ui/tui/spokes/shell_spoke.py | 65 +++++++++++++++++++++++++++++++++
>   1 file changed, 65 insertions(+)
>   create mode 100644 pyanaconda/ui/tui/spokes/shell_spoke.py
>
> diff --git a/pyanaconda/ui/tui/spokes/shell_spoke.py b/pyanaconda/ui/tui/spokes/shell_spoke.py
> new file mode 100644
> index 0000000..dd9760e
> --- /dev/null
> +++ b/pyanaconda/ui/tui/spokes/shell_spoke.py
> @@ -0,0 +1,65 @@
> +#
> +# Copyright (C) 2013  Red Hat, Inc.
> +#
> +# This copyrighted material is made available to anyone wishing to use,
> +# modify, copy, or redistribute it subject to the terms and conditions of
> +# the GNU General Public License v.2, or (at your option) any later version.
> +# This program is distributed in the hope that it will be useful, but WITHOUT
> +# ANY WARRANTY expressed or implied, including the implied warranties of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
> +# Public License for more details.  You should have received a copy of the
> +# GNU General Public License along with this program; if not, write to the
> +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> +# 02110-1301, USA.  Any Red Hat trademarks that are incorporated in the
> +# source code or documentation are not subject to the GNU General Public
> +# License and may only be used or replicated with the express permission of
> +# Red Hat, Inc.
> +#
> +# Red Hat Author(s): Vratislav Podzimek <vpodzime at redhat.com>
> +#
> +
> +"""Text mode shell spoke"""
> +
> +from pyanaconda.ui.tui.spokes import NormalTUISpoke
> +from pyanaconda.ui.tui.simpleline.widgets import TextWidget
> +from pyanaconda.i18n import _
> +from pyanaconda.constants import ANACONDA_ENVIRON
> +from blivet import arch
> +
> +import os
> +import subprocess
> +
> +class ShellSpoke(NormalTUISpoke):
> +    title = _("Shell")
> +    category = "system"
> +
> +    @classmethod
> +    def should_run(cls, environment, data):
> +        # run only in the installer on s390(x) machines
> +        return environment == ANACONDA_ENVIRON and arch.isS390()
> +
> +    @property
> +    def completed(self):
> +        # always completed
> +        return True
> +
> +    @property
> +    def status(self):
> +        return _("Start shell")
> +
> +    def apply(self):
> +        # no action needed here
> +        pass
> +
> +    def refresh(self, args=None):
> +        NormalTUISpoke.refresh(self, args)
> +
> +        self._window += [TextWidget(_("Exit the shell to continue")), ""]
> +
> +    def prompt(self, args=None):
> +        # run shell instead of prompt, close window after the prompt and
> +        # suppress the prompt
> +        proc = subprocess.Popen(["bash", "--login"], shell=True, cwd="/")
> +        proc.wait()
> +        self.close()
> +        return None



More information about the anaconda-patches mailing list