Re: Human interaction in %PRE text mode with snack Dialog boxes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Meyers, John J wrote:

Hi All,
The %pre mode seems to conduct I/O with tty3. With primary anaconda user interaction displays on tty1. I need to interact with the user on tty1 during %pre; Using python and snack. Due to using various weird hardware in our environment a graphical install dos not work.
 The Code below is just an example of what I've tried.
%pre --interpreter /usr/bin/python
TTY = 1
import os
import sys
import snack
import time
import fcntl
import termios
os.system("chvt %d" % TTY)
fd = os.open("/dev/tty%d" % TTY, os.O_RDWR)
os.dup2(fd, 0)
os.dup2(fd, 1)
os.dup2(fd, 2)
sys.stdin = os.fdopen(0, "r")
sys.stdout = os.fdopen(1, "w")
sys.stderr = os.fdopen(2, "w")
screen = snack.SnackScreen()
snack.ButtonChoiceWindow(screen, "WARNING",
    "WARNING! Am I CRAZY!",
    buttons=["reboot", "continue"]):
    os.system("reboot")
    while 1: time.sleep(10)
screen.finish()
os.system("chvt %d" % 3)
%end
ANY suggestions??

I use code like this:
set_tty(1)  # change to tty1, we're called by
# kickstart with stdout as tty3

user_args = get_user_input(host_config, args.args.get('tb-host'))
set_tty(3)  # restore

Where:
def set_tty(n):
    f = open('/dev/tty%d' % n, 'a')
    os.dup2(f.fileno(), sys.stdin.fileno())
    os.dup2(f.fileno(), sys.stdout.fileno())
    os.dup2(f.fileno(), sys.stderr.fileno())

and get_user_input() uses snack.

Hope that helps.

Eric.

_______________________________________________
Kickstart-list mailing list
Kickstart-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/kickstart-list

[Index of Archives]     [Red Hat General]     [CentOS Users]     [Fedora Users]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux