[PATCH 11/13] Add automake files for TUI

Vratislav Podzimek vpodzime at redhat.com
Wed Aug 8 11:18:35 UTC 2012


On Wed, 2012-08-08 at 10:52 +0200, Martin Sivak wrote:
> ---
>  Makefile.am                               |    4 +-
>  configure.ac                              |    5 ++
>  pyanaconda/ui/Makefile.am                 |    2 +-
>  pyanaconda/ui/tui/Makefile.am             |   24 +++++++
>  pyanaconda/ui/tui/hubs/Makefile.am        |   24 +++++++
>  pyanaconda/ui/tui/simpleline/Makefile.am  |   24 +++++++
>  pyanaconda/ui/tui/spokes/Makefile.am      |   24 +++++++
>  pyanaconda/ui/tui/tools/Makefile.am       |   18 +++++
>  pyanaconda/ui/tui/tools/run-hub.py        |    1 -
>  pyanaconda/ui/tui/tools/run-spoke.py      |  105 -----------------------------
>  pyanaconda/ui/tui/tools/run-text-hub.py   |    1 +
>  pyanaconda/ui/tui/tools/run-text-spoke.py |  105 +++++++++++++++++++++++++++++
>  12 files changed, 228 insertions(+), 109 deletions(-)
>  create mode 100644 pyanaconda/ui/tui/Makefile.am
>  create mode 100644 pyanaconda/ui/tui/hubs/Makefile.am
>  create mode 100644 pyanaconda/ui/tui/simpleline/Makefile.am
>  create mode 100644 pyanaconda/ui/tui/spokes/Makefile.am
>  create mode 100644 pyanaconda/ui/tui/tools/Makefile.am
>  delete mode 120000 pyanaconda/ui/tui/tools/run-hub.py
>  delete mode 100755 pyanaconda/ui/tui/tools/run-spoke.py
>  create mode 120000 pyanaconda/ui/tui/tools/run-text-hub.py
>  create mode 100755 pyanaconda/ui/tui/tools/run-text-spoke.py
> 
> diff --git a/Makefile.am b/Makefile.am
> index 9085d4e..84531c4 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -131,14 +131,14 @@ runtextspoke:
>  	ANACONDA_INSTALL_CLASSES=${PWD}/pyanaconda/installclasses \
>  	PYTHONPATH=.:pyanaconda/isys/.libs:widgets/python/:widgets/src/.libs/ \
>  	LD_LIBRARY_PATH=widgets/src/.libs \
> -	pyanaconda/ui/tui/tools/run-spoke.py ${SPOKE_MODULE} ${SPOKE_CLASS}
> +	pyanaconda/ui/tui/tools/run-text-spoke.py ${SPOKE_MODULE} ${SPOKE_CLASS}
>  
>  runtexthub:
>  	ANACONDA_DATA=${PWD}/data \
>  	ANACONDA_INSTALL_CLASSES=${PWD}/pyanaconda/installclasses \
>  	PYTHONPATH=.:pyanaconda/isys/.libs:widgets/python/:widgets/src/.libs/ \
>  	LD_LIBRARY_PATH=widgets/src/.libs \
> -	pyanaconda/ui/tui/tools/run-hub.py ${HUB_MODULE} ${HUB_CLASS}
> +	pyanaconda/ui/tui/tools/run-text-hub.py ${HUB_MODULE} ${HUB_CLASS}
>  
> 
>  runglade:
> diff --git a/configure.ac b/configure.ac
> index a7bc032..f10eed4 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -296,6 +296,11 @@ AC_CONFIG_FILES([Makefile
>                   pyanaconda/ui/gui/spokes/lib/Makefile
>                   pyanaconda/ui/gui/tools/Makefile
>                   pyanaconda/ui/gui/Makefile
> +                 pyanaconda/ui/tui/hubs/Makefile
> +                 pyanaconda/ui/tui/simpleline/Makefile
> +                 pyanaconda/ui/tui/spokes/Makefile
> +                 pyanaconda/ui/tui/tools/Makefile
> +                 pyanaconda/ui/tui/Makefile
>                   tests/Makefile
>                   tests/mock/Makefile
>                   tests/kickstart_test/Makefile
> diff --git a/pyanaconda/ui/Makefile.am b/pyanaconda/ui/Makefile.am
> index 970fc82..cff34cc 100644
> --- a/pyanaconda/ui/Makefile.am
> +++ b/pyanaconda/ui/Makefile.am
> @@ -15,7 +15,7 @@
>  #
>  # Author: Chris Lumens <clumens at redhat.com>
>  
> -SUBDIRS = gui
> +SUBDIRS = gui tui
>  
>  MAINTAINERCLEANFILES = Makefile.in
>  
> diff --git a/pyanaconda/ui/tui/Makefile.am b/pyanaconda/ui/tui/Makefile.am
> new file mode 100644
> index 0000000..9cc0ba1
> --- /dev/null
> +++ b/pyanaconda/ui/tui/Makefile.am
> @@ -0,0 +1,24 @@
> +# Copyright (C) 2011  Red Hat, Inc.
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU Lesser General Public License as published
> +# by the Free Software Foundation; either version 2.1 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU Lesser General Public License for more details.
> +#
> +# You should have received a copy of the GNU Lesser General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +#
> +# Author: Chris Lumens <clumens at redhat.com>
I believe you are the author of this file. ;)

> +
> +SUBDIRS = hubs spokes simpleline tools
> +
> +MAINTAINERCLEANFILES = Makefile.in
> +
> +pkgpyexecdir = $(pyexecdir)/py$(PACKAGE_NAME)
> +tuidir        = $(pkgpyexecdir)/ui/tui
> +tui_PYTHON    = *.py
> diff --git a/pyanaconda/ui/tui/hubs/Makefile.am b/pyanaconda/ui/tui/hubs/Makefile.am
> new file mode 100644
> index 0000000..f099b76
> --- /dev/null
> +++ b/pyanaconda/ui/tui/hubs/Makefile.am
> @@ -0,0 +1,24 @@
> +# Copyright (C) 2011  Red Hat, Inc.
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU Lesser General Public License as published
> +# by the Free Software Foundation; either version 2.1 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU Lesser General Public License for more details.
> +#
> +# You should have received a copy of the GNU Lesser General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +#
> +# Author: Chris Lumens <clumens at redhat.com>
> +
> +SUBDIRS =
> +
> +MAINTAINERCLEANFILES = Makefile.in
> +
> +pkgpyexecdir = $(pyexecdir)/py$(PACKAGE_NAME)
> +hubsdir        = $(pkgpyexecdir)/ui/tui/hubs
> +hubs_PYTHON    = *.py
> diff --git a/pyanaconda/ui/tui/simpleline/Makefile.am b/pyanaconda/ui/tui/simpleline/Makefile.am
> new file mode 100644
> index 0000000..555931b
> --- /dev/null
> +++ b/pyanaconda/ui/tui/simpleline/Makefile.am
> @@ -0,0 +1,24 @@
> +# Copyright (C) 2011  Red Hat, Inc.
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU Lesser General Public License as published
> +# by the Free Software Foundation; either version 2.1 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU Lesser General Public License for more details.
> +#
> +# You should have received a copy of the GNU Lesser General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +#
> +# Author: Chris Lumens <clumens at redhat.com>
> +
> +SUBDIRS = 
> +
> +MAINTAINERCLEANFILES = Makefile.in
> +
> +pkgpyexecdir = $(pyexecdir)/py$(PACKAGE_NAME)
> +simplelinedir        = $(pkgpyexecdir)/ui/tui/simpleline
> +simpleline_PYTHON    = *.py
> diff --git a/pyanaconda/ui/tui/spokes/Makefile.am b/pyanaconda/ui/tui/spokes/Makefile.am
> new file mode 100644
> index 0000000..96cdff9
> --- /dev/null
> +++ b/pyanaconda/ui/tui/spokes/Makefile.am
> @@ -0,0 +1,24 @@
> +# Copyright (C) 2011  Red Hat, Inc.
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU Lesser General Public License as published
> +# by the Free Software Foundation; either version 2.1 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU Lesser General Public License for more details.
> +#
> +# You should have received a copy of the GNU Lesser General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +#
> +# Author: Chris Lumens <clumens at redhat.com>
> +
> +SUBDIRS =
> +
> +MAINTAINERCLEANFILES = Makefile.in
> +
> +pkgpyexecdir = $(pyexecdir)/py$(PACKAGE_NAME)
> +spokesdir        = $(pkgpyexecdir)/ui/tui/spokes
> +spokes_PYTHON    = *.py
> diff --git a/pyanaconda/ui/tui/tools/Makefile.am b/pyanaconda/ui/tui/tools/Makefile.am
> new file mode 100644
> index 0000000..abd5472
> --- /dev/null
> +++ b/pyanaconda/ui/tui/tools/Makefile.am
> @@ -0,0 +1,18 @@
> +# Copyright (C) 2011  Red Hat, Inc.
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU Lesser General Public License as published
> +# by the Free Software Foundation; either version 2.1 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU Lesser General Public License for more details.
> +#
> +# You should have received a copy of the GNU Lesser General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +#
> +# Author: Chris Lumens <clumens at redhat.com>
> +
> +EXTRA_DIST = run-text-hub.py run-text-spoke.py
> diff --git a/pyanaconda/ui/tui/tools/run-hub.py b/pyanaconda/ui/tui/tools/run-hub.py
> deleted file mode 120000
> index 4583bed..0000000
> --- a/pyanaconda/ui/tui/tools/run-hub.py
> +++ /dev/null
> @@ -1 +0,0 @@
> -run-spoke.py
> \ No newline at end of file
> diff --git a/pyanaconda/ui/tui/tools/run-spoke.py b/pyanaconda/ui/tui/tools/run-spoke.py
> deleted file mode 100755
> index d5e9c57..0000000
> --- a/pyanaconda/ui/tui/tools/run-spoke.py
> +++ /dev/null
> @@ -1,105 +0,0 @@
> -#!/usr/bin/python
> -
> -import sys, os
> -import os.path
> -
> -# Check command line arguments
> -if len(sys.argv)<2:
> -    print "Usage: $0 <spoke module name> [<spoke widget class>]"
> -    sys.exit(1)
> -
> -# Logging always needs to be set up first thing, or there'll be tracebacks.
> -from pyanaconda import anaconda_log
> -anaconda_log.init()
> -
> -from pyanaconda.installclass import DefaultInstall
> -from pyanaconda.storage import Storage
> -from pyanaconda.threads import initThreading
> -from pyanaconda.packaging.yumpayload import YumPayload
> -from pyanaconda.platform import getPlatform
> -from pykickstart.version import makeVersion
> -from pyanaconda.ui.tui.simpleline import App
> -from pyanaconda.ui.tui import YesNoDialog
> -
> -# Don't worry with fcoe, iscsi, dasd, any of that crud.
> -from pyanaconda.flags import flags
> -flags.imageInstall = True
> -flags.testing = True
> -
> -initThreading()
> -
> -# Figure out the part we are about to show: hub/spoke?
> -# And get the name of the module which represents it
> -if os.path.basename(sys.argv[0]) == "run-spoke.py":
> -    spokeModuleName = "pyanaconda.ui.tui.spokes.%s" % sys.argv[1]
> -    from pyanaconda.ui.common import Spoke
> -    spokeBaseClass = Spoke
> -    spokeText = "spoke"
> -    SpokeText = "Spoke"
> -elif os.path.basename(sys.argv[0]) == "run-hub.py":
> -    spokeModuleName = "pyanaconda.ui.tui.hubs.%s" % sys.argv[1]
> -    from pyanaconda.ui.common import Hub
> -    spokeBaseClass = Hub
> -    spokeText = "hub"
> -    SpokeText = "Hub"
> -else:
> -    print "You have to run this command as run-spoke.py or run-hub.py."
> -    sys.exit(1)
> -
> -# Set default spoke class
> -spokeClass = None
> -spokeClassName = None
> -
> -# Load spoke specified on the command line
> -# If the spoke module was specified, but the spoke class was not,
> -# try to find it using class hierarchy
> -try:
> -    spokeClassName = sys.argv[2]
> -    __import__(spokeModuleName, fromlist = [spokeClassName])
> -    spokeModule = sys.modules[spokeModuleName]
> -except IndexError:
> -    __import__(spokeModuleName)
> -    spokeModule = sys.modules[spokeModuleName]
> -    for k,v in vars(spokeModule).iteritems():
> -        try:
> -            print k,v
> -            if issubclass(v, spokeBaseClass) and v != spokeBaseClass:
> -                spokeClassName = k
> -                spokeClass = v
> -        except TypeError:
> -            pass
> -
> -if not spokeClass:
> -    try:
> -        spokeClass = getattr(spokeModule, spokeClassName)
> -    except KeyError:
> -        print "%s %s could not be found in %s" % (SpokeText, spokeClassName, spokeModuleName)
> -        sys.exit(1)
> -
> -
> -print "Running %s %s from %s" % (spokeText, spokeClass, spokeModule)
> -
> -platform = getPlatform()
> -ksdata = makeVersion()
> -storage = Storage(data=ksdata, platform=platform)
> -storage.reset()
> -instclass = DefaultInstall()
> -app = App("TEST HARNESS", yes_or_no_question = YesNoDialog)
> -
> -payload = YumPayload(ksdata)
> -payload.setup(storage)
> -payload.install_log = sys.stdout
> -
> -spoke = spokeClass(app, ksdata, storage, payload, instclass)
> -
> -if not spoke.showable:
> -    print "This %s is not showable, but I'll continue anyway." % spokeText
> -
> -app.schedule_screen(spoke)
> -app.run()
> -
> -if hasattr(spoke, "status"):
> -    print "%s status:\n%s\n" % (SpokeText, spoke.status)
> -if hasattr(spoke, "completed"):
> -    print "%s completed:\n%s\n" % (SpokeText, spoke.completed)
> -print "%s kickstart fragment:\n%s" % (SpokeText, ksdata)
> diff --git a/pyanaconda/ui/tui/tools/run-text-hub.py b/pyanaconda/ui/tui/tools/run-text-hub.py
> new file mode 120000
> index 0000000..506993e
> --- /dev/null
> +++ b/pyanaconda/ui/tui/tools/run-text-hub.py
> @@ -0,0 +1 @@
> +run-text-spoke.py
> \ No newline at end of file
> diff --git a/pyanaconda/ui/tui/tools/run-text-spoke.py b/pyanaconda/ui/tui/tools/run-text-spoke.py
> new file mode 100755
> index 0000000..d5e9c57
> --- /dev/null
> +++ b/pyanaconda/ui/tui/tools/run-text-spoke.py
> @@ -0,0 +1,105 @@
> +#!/usr/bin/python
> +
> +import sys, os
> +import os.path
> +
> +# Check command line arguments
> +if len(sys.argv)<2:
> +    print "Usage: $0 <spoke module name> [<spoke widget class>]"
> +    sys.exit(1)
> +
> +# Logging always needs to be set up first thing, or there'll be tracebacks.
> +from pyanaconda import anaconda_log
> +anaconda_log.init()
> +
> +from pyanaconda.installclass import DefaultInstall
> +from pyanaconda.storage import Storage
> +from pyanaconda.threads import initThreading
> +from pyanaconda.packaging.yumpayload import YumPayload
> +from pyanaconda.platform import getPlatform
> +from pykickstart.version import makeVersion
> +from pyanaconda.ui.tui.simpleline import App
> +from pyanaconda.ui.tui import YesNoDialog
> +
> +# Don't worry with fcoe, iscsi, dasd, any of that crud.
> +from pyanaconda.flags import flags
> +flags.imageInstall = True
> +flags.testing = True
> +
> +initThreading()
> +
> +# Figure out the part we are about to show: hub/spoke?
> +# And get the name of the module which represents it
> +if os.path.basename(sys.argv[0]) == "run-spoke.py":
> +    spokeModuleName = "pyanaconda.ui.tui.spokes.%s" % sys.argv[1]
> +    from pyanaconda.ui.common import Spoke
> +    spokeBaseClass = Spoke
> +    spokeText = "spoke"
> +    SpokeText = "Spoke"
> +elif os.path.basename(sys.argv[0]) == "run-hub.py":
> +    spokeModuleName = "pyanaconda.ui.tui.hubs.%s" % sys.argv[1]
> +    from pyanaconda.ui.common import Hub
> +    spokeBaseClass = Hub
> +    spokeText = "hub"
> +    SpokeText = "Hub"
> +else:
> +    print "You have to run this command as run-spoke.py or run-hub.py."
> +    sys.exit(1)
> +
> +# Set default spoke class
> +spokeClass = None
> +spokeClassName = None
> +
> +# Load spoke specified on the command line
> +# If the spoke module was specified, but the spoke class was not,
> +# try to find it using class hierarchy
> +try:
> +    spokeClassName = sys.argv[2]
> +    __import__(spokeModuleName, fromlist = [spokeClassName])
> +    spokeModule = sys.modules[spokeModuleName]
> +except IndexError:
> +    __import__(spokeModuleName)
> +    spokeModule = sys.modules[spokeModuleName]
> +    for k,v in vars(spokeModule).iteritems():
> +        try:
> +            print k,v
> +            if issubclass(v, spokeBaseClass) and v != spokeBaseClass:
> +                spokeClassName = k
> +                spokeClass = v
> +        except TypeError:
> +            pass
> +
> +if not spokeClass:
> +    try:
> +        spokeClass = getattr(spokeModule, spokeClassName)
> +    except KeyError:
> +        print "%s %s could not be found in %s" % (SpokeText, spokeClassName, spokeModuleName)
> +        sys.exit(1)
> +
> +
> +print "Running %s %s from %s" % (spokeText, spokeClass, spokeModule)
> +
> +platform = getPlatform()
> +ksdata = makeVersion()
> +storage = Storage(data=ksdata, platform=platform)
> +storage.reset()
> +instclass = DefaultInstall()
> +app = App("TEST HARNESS", yes_or_no_question = YesNoDialog)
> +
> +payload = YumPayload(ksdata)
> +payload.setup(storage)
> +payload.install_log = sys.stdout
> +
> +spoke = spokeClass(app, ksdata, storage, payload, instclass)
> +
> +if not spoke.showable:
> +    print "This %s is not showable, but I'll continue anyway." % spokeText
> +
> +app.schedule_screen(spoke)
> +app.run()
> +
> +if hasattr(spoke, "status"):
> +    print "%s status:\n%s\n" % (SpokeText, spoke.status)
> +if hasattr(spoke, "completed"):
> +    print "%s completed:\n%s\n" % (SpokeText, spoke.completed)
> +print "%s kickstart fragment:\n%s" % (SpokeText, ksdata)




More information about the anaconda-patches mailing list