aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/lib/mic/kickstart/custom_commands/desktop.py
blob: c8bd647ae3f29d63c559e1e3ebda196d8297158b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/usr/bin/python -tt
#
# Copyright (c) 2008, 2009, 2010 Intel, Inc.
#
# Yi Yang <yi.y.yang@intel.com>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; version 2 of the License
#
# 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 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., 59
# Temple Place - Suite 330, Boston, MA 02111-1307, USA.

from pykickstart.base import *
from pykickstart.errors import *
from pykickstart.options import *

class Mic_Desktop(KickstartCommand):
    def __init__(self, writePriority=0,
                       defaultdesktop=None,
                       defaultdm=None,
                       autologinuser=None,
                       session=None):

        KickstartCommand.__init__(self, writePriority)

        self.__new_version = False
        self.op = self._getParser()

        self.defaultdesktop = defaultdesktop
        self.autologinuser = autologinuser
        self.defaultdm = defaultdm
        self.session = session

    def __str__(self):
        retval = ""

        if self.defaultdesktop != None:
            retval += " --defaultdesktop=%s" % self.defaultdesktop
        if self.session != None:
            retval += " --session=\"%s\"" % self.session
        if self.autologinuser != None:
            retval += " --autologinuser=%s" % self.autologinuser
        if self.defaultdm != None:
            retval += " --defaultdm=%s" % self.defaultdm

        if retval != "":
            retval = "# Default Desktop Settings\ndesktop %s\n" % retval

        return retval

    def _getParser(self):
        try:
            op = KSOptionParser(lineno=self.lineno)
        except TypeError:
            # the latest version has not lineno argument
            op = KSOptionParser()
            self.__new_version = True

        op.add_option("--defaultdesktop", dest="defaultdesktop",
                                          action="store",
                                          type="string",
                                          nargs=1)
        op.add_option("--autologinuser", dest="autologinuser",
                                         action="store",
                                         type="string",
                                         nargs=1)
        op.add_option("--defaultdm", dest="defaultdm",
                                     action="store",
                                     type="string",
                                     nargs=1)
        op.add_option("--session", dest="session",
                                   action="store",
                                   type="string",
                                   nargs=1)
        return op

    def parse(self, args):
        if self.__new_version:
            (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
        else:
            (opts, extra) = self.op.parse_args(args=args)

        if extra:
            m = _("Unexpected arguments to %(command)s command: %(options)s") \
                  % {"command": "desktop", "options": extra}
            raise KickstartValueError, formatErrorMsg(self.lineno, msg=m)

        self._setToSelf(self.op, opts)