diff options
author | Martin Sivak <msivak@redhat.com> | 2013-03-05 09:34:51 +0100 |
---|---|---|
committer | Martin Sivak <msivak@redhat.com> | 2013-03-05 09:34:51 +0100 |
commit | d4c6d44ba432ba873c489a25e493ca9c1b0c40f9 (patch) | |
tree | dc8090c7ead44fe32b0742582d80735c2787a9c0 | |
parent | 572a7f65b8c752dcf4a14106896812949d358c6a (diff) | |
download | firstboot2-d4c6d44ba432ba873c489a25e493ca9c1b0c40f9.tar.gz firstboot2-d4c6d44ba432ba873c489a25e493ca9c1b0c40f9.tar.xz firstboot2-d4c6d44ba432ba873c489a25e493ca9c1b0c40f9.zip |
Make the main script UI agnostic and fix typos, imports and paths
-rw-r--r-- | Makefile (renamed from initial_setup/Makefile) | 6 | ||||
-rwxr-xr-x | initial-setup | 7 | ||||
-rw-r--r-- | initial_setup/__main__.py | 67 | ||||
-rw-r--r-- | initial_setup/gui/__init__.py | 1 | ||||
-rw-r--r-- | initial_setup/gui/__main__.py | 41 | ||||
-rw-r--r-- | initial_setup/gui/gui.py | 10 | ||||
-rw-r--r-- | initial_setup/gui/hubs/__init__.py | 2 | ||||
-rw-r--r-- | initial_setup/gui/hubs/initial_setup.py | 4 | ||||
-rw-r--r-- | systemd/initial-setup-graphical.service | 2 | ||||
-rw-r--r-- | systemd/initial-setup-text.service | 2 | ||||
-rw-r--r-- | systemd/initial-setup-xserver.service | 17 |
11 files changed, 100 insertions, 59 deletions
diff --git a/initial_setup/Makefile b/Makefile index 35a8d98..8738cc7 100644 --- a/initial_setup/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ # # Author: Martin Sivak <msivak@redhat.com> -ANACONDA_PATH=${HOME}/Work/anaconda/master +ANACONDA_PATH=${HOME}/Work/anaconda/msivak # GUI TESTING rungui: @@ -31,13 +31,13 @@ rungui: GI_TYPELIB_PATH=${ANACONDA_PATH}/widgets/src/ \ GLADE_CATALOG_SEARCH_PATH=${ANACONDA_PATH}/widgets/glade \ GLADE_MODULE_SEARCH_PATH=${ANACONDA_PATH}/widgets/src/.libs \ - python -m gui + ./initial-setup runtui: ANACONDA_DATA=${ANACONDA_PATH}/data \ ANACONDA_INSTALL_CLASSES=${ANACONDA_PATH}/pyanaconda/installclasses \ PYTHONPATH=.:${ANACONDA_PATH}:${ANACONDA_PATH}/pyanaconda/isys/.libs \ - python -m tui + DISPLAY= ./initial-setup runglade: ANACONDA_DATA=${ANACONDA_PATH}/data \ diff --git a/initial-setup b/initial-setup index 980818b..3822c29 100755 --- a/initial-setup +++ b/initial-setup @@ -1,7 +1,2 @@ #!/bin/sh -if [ "x$DISPLAY" != "x" ]; then - python -m initial_setup.gui -else - python -m initial_setup.tui -fi - +python -m initial_setup diff --git a/initial_setup/__main__.py b/initial_setup/__main__.py new file mode 100644 index 0000000..ec5bfba --- /dev/null +++ b/initial_setup/__main__.py @@ -0,0 +1,67 @@ +#!/bin/python +import os + +if "DISPLAY" in os.environ: + mode="gui" +else: + mode="tui" + +if mode == "gui": + # We need this so we can tell GI to look for overrides objects + # also in anaconda source directories + import gi.overrides + for p in os.environ.get("ANACONDA_WIDGETS_OVERRIDES", "").split(":"): + gi.overrides.__path__.insert(0, p) + +# set the root path to / so the imported spokes +# know where to apply their changes +from pyanaconda.constants import ROOT_PATH +ROOT_PATH = "/" + +from pyanaconda.addons import collect_addon_paths + +addon_paths = ["/usr/share/initial-setup/modules", "/usr/share/anaconda/addons"] +addon_module_paths = collect_addon_paths(addon_paths) + +# Too bad anaconda does not have modularized logging +from pyanaconda import anaconda_log +anaconda_log.init() + +# Prepare new data object +from pyanaconda import kickstart +data = kickstart.AnacondaKSHandler(addon_module_paths["ks"]) + +# Replace storage commands by Dummy objects +# TODO + +# Read the installed kickstart +parser = kickstart.AnacondaKSParser(data) +parser.readKickstart("anaconda-ks.cfg") + +if mode == "gui": + # Import IS gui specifics + import gui + + # Add addons to search paths + gui.InitialSetupGraphicalUserInterface.update_paths(addon_module_paths) + + # Initialize the UI + ui = gui.InitialSetupGraphicalUserInterface(None, None, None) +else: + # Import IS gui specifics + import tui + + # Add addons to search paths + tui.InitialSetupTextUserInterface.update_paths(addon_module_paths) + + # Initialize the UI + ui = gui.InitialSetupTextUserInterface(None, None, None) + +# Pass the data object to user inteface +ui.setup(data) + +# Start the application +ui.run() + +# Print the kickstart file +print data diff --git a/initial_setup/gui/__init__.py b/initial_setup/gui/__init__.py index e69de29..19247f0 100644 --- a/initial_setup/gui/__init__.py +++ b/initial_setup/gui/__init__.py @@ -0,0 +1 @@ +from .gui import InitialSetupGraphicalUserInterface diff --git a/initial_setup/gui/__main__.py b/initial_setup/gui/__main__.py deleted file mode 100644 index af8c5e9..0000000 --- a/initial_setup/gui/__main__.py +++ /dev/null @@ -1,41 +0,0 @@ -import os - -# We need this so we can tell GI to look for overrides objects -# also in anaconda source directories -import gi.overrides -for p in os.environ.get("ANACONDA_WIDGETS_OVERRIDES", "").split(":"): - gi.overrides.__path__.insert(0, p) - -# set the root path to / so the imported spokes -# know where to apply their changes -from pyanaconda.constants import ROOT_PATH -ROOT_PATH = "/" - -from pyanaconda.addons import collect_addon_paths - -addon_paths = ["/usr/share/initial-setup/modules", "/usr/share/anaconda/addons"] -addon_module_paths = collect_addon_paths(addon_paths) - -# Too bad anaconda does not have modularized logging -from pyanaconda import anaconda_log -anaconda_log.init() - -# Prepare new data object -from pyanaconda import kickstart -data = kickstart.AnacondaKSHandler(addon_module_paths["ks"]) - -# Import IS gui specifics -import gui - -# Add addons to search paths -gui.InitalSetupGraphicalUserInterface.update_paths(addon_module_paths) - -# Initialize the UI -g = gui.InitalSetupGraphicalUserInterface(None, None, None) -g.setup(data) - -# Start the application -g.run() - -# Print the kickstart file -print data diff --git a/initial_setup/gui/gui.py b/initial_setup/gui/gui.py index 13f93b7..24e5a27 100644 --- a/initial_setup/gui/gui.py +++ b/initial_setup/gui/gui.py @@ -1,6 +1,6 @@ from pyanaconda.ui.gui import QuitDialog, GUIObject, GraphicalUserInterface #from .product import productName, productVersion -from .hubs import InitalSetupMainHub +from .hubs import InitialSetupMainHub from pyanaconda.ui.gui.spokes import StandaloneSpoke import pyanaconda.ui.gui.spokes from pyanaconda.ui.common import collect, FirstbootSpokeMixIn @@ -16,12 +16,12 @@ N_ = lambda t: t productTitle = lambda: "Initial Setup of Fedora" isFinal = lambda: False -class InitalSetupQuitDialog(QuitDialog): +class InitialSetupQuitDialog(QuitDialog): MESSAGE = N_("Are you sure you want to quit the configuration process?\n" "You might end up with unusable system if you do.") @inject(Gdk, productTitle = productTitle, isFinal = isFinal) -class InitalSetupGraphicalUserInterface(GraphicalUserInterface): +class InitialSetupGraphicalUserInterface(GraphicalUserInterface): """This is the main Gtk based firstboot interface. It inherits from anaconda to make the look & feel as similar as possible. """ @@ -32,10 +32,10 @@ class InitalSetupGraphicalUserInterface(GraphicalUserInterface): def __init__(self, storage, payload, instclass): GraphicalUserInterface.__init__(self, storage, payload, instclass, productTitle, isFinal, - quitDialog = InitalSetupQuitDialog) + quitDialog = InitialSetupQuitDialog) def _list_hubs(self): - return [InitalSetupMainHub] + return [InitialSetupMainHub] basemask = "firstboot.gui" basepath = os.path.dirname(__file__) diff --git a/initial_setup/gui/hubs/__init__.py b/initial_setup/gui/hubs/__init__.py index b6f577d..5d166d6 100644 --- a/initial_setup/gui/hubs/__init__.py +++ b/initial_setup/gui/hubs/__init__.py @@ -1 +1 @@ -from initial_setup import InitalSetupMainHub +from .initial_setup import InitialSetupMainHub diff --git a/initial_setup/gui/hubs/initial_setup.py b/initial_setup/gui/hubs/initial_setup.py index a0f87db..f966782 100644 --- a/initial_setup/gui/hubs/initial_setup.py +++ b/initial_setup/gui/hubs/initial_setup.py @@ -3,6 +3,8 @@ from pyanaconda.ui.gui.spokes import Spoke from pyanaconda.ui.common import collect import os +__all__ = ["InitialSetupMainHub"] + def collect_spokes(mask_paths): """Return a list of all spoke subclasses that should appear for a given category. Look for them in files imported as module_path % basename(f) @@ -23,7 +25,7 @@ def collect_spokes(mask_paths): return spokes -class InitalSetupMainHub(Hub): +class InitialSetupMainHub(Hub): uiFile = "initial_setup.glade" builderObjects = ["summaryWindow"] mainWidgetName = "summaryWindow" diff --git a/systemd/initial-setup-graphical.service b/systemd/initial-setup-graphical.service index b4526ad..da96359 100644 --- a/systemd/initial-setup-graphical.service +++ b/systemd/initial-setup-graphical.service @@ -1,5 +1,5 @@ [Unit] -Description=Inital Setup configuration program +Description=Initial Setup configuration program After=livesys.service plymouth-quit.service Before=display-manager.service getty@tty1.service Conflicts=plymouth-quit.service initial-setup-text.service diff --git a/systemd/initial-setup-text.service b/systemd/initial-setup-text.service index 7dd9945..eca8a7b 100644 --- a/systemd/initial-setup-text.service +++ b/systemd/initial-setup-text.service @@ -1,5 +1,5 @@ [Unit] -Description=Inital Setup configuration program (text mode) +Description=Initial Setup configuration program (text mode) After=livesys.service plymouth-quit.service After=systemd-vconsole-setup.service Before=display-manager.service getty@tty1.service diff --git a/systemd/initial-setup-xserver.service b/systemd/initial-setup-xserver.service new file mode 100644 index 0000000..3c485ce --- /dev/null +++ b/systemd/initial-setup-xserver.service @@ -0,0 +1,17 @@ +[Unit] +Description=Initial Setup Xserver service +After=livesys.service plymouth-quit.service +After=systemd-vconsole-setup.service +Before=display-manager.service getty@tty1.service +Conflicts=plymouth-quit.service + +[Service] +Type=oneshot +ExecStartPre=-/bin/plymouth quit +ExecStart=xinit /bin/firstboot-windowmanager -- Xorg :9 -ac -nolisten tcp vt1 +ExecStartPost= +TimeoutSec=0 +RemainAfterExit=yes +SysVStartPriority=99 + +[Install] |