Add --live option for cl-desktop.

--live option used for set cl_action -> live.
ac_desktop_desktop is on for only cl_action "desktop"
ac_desktop_live is on for cl_action "live" or "desktop".
In script configure user profile add condition of run by --live
if local user login in live system.
master
Mike Hiretsky 13 years ago
parent eb40ddc15f
commit ff2d91be9c

@ -27,16 +27,24 @@ then
[[ -z "`ls ${userHome}`" ]] || [[ -z "`ls ${userHome}`" ]] ||
diff -uq <(ls -A1 /etc/skel | wc) <(ls -A1 ${userHome} | sort) &>/dev/null diff -uq <(ls -A1 /etc/skel | wc) <(ls -A1 ${userHome} | sort) &>/dev/null
then then
ERRORLOG=`/usr/bin/cl-desktop --progress --color=never $USER 2>&1` APPENDCMD=""
# raise xmessage error if cl-desktop failed # run configure only mutable params of user profile if it is live system
if [ "$?" -gt "0" ]; # and profile already configured
then elif [[ "`desktop_variable_value os_root_type`" != "hdd" ]]
# write error message to logfile then
echo "$ERRORLOG" >> $FILE_LOG APPENDCMD="--live"
# display error by xmessage else
xmes cl-desktop "$ERRORLOG" exit 0
exit 1 fi
fi ERRORLOG=`/usr/bin/cl-desktop $APPENDCMD --progress --color=never $USER 2>&1`
# raise xmessage error if cl-desktop failed
if [ "$?" -gt "0" ];
then
# write error message to logfile
echo "$ERRORLOG" >> $FILE_LOG
# display error by xmessage
xmes cl-desktop "$ERRORLOG"
exit 1
fi fi
fi fi
exit 0 exit 0

@ -182,7 +182,7 @@ class desktop(share):
else: else:
return dirsFiles return dirsFiles
def createHome(self, progress=False): def createHome(self, progress=False, live=False):
"""Создание профиля пользователя (пользовательской директории)""" """Создание профиля пользователя (пользовательской директории)"""
# Имя пользователя # Имя пользователя
uid = os.getuid() uid = os.getuid()
@ -225,8 +225,12 @@ class desktop(share):
if not os.path.exists(homeDir): if not os.path.exists(homeDir):
flagHomeExists = False flagHomeExists = False
self.createUserDir(uid, gid, homeDir) self.createUserDir(uid, gid, homeDir)
# Действие - шаблоны пользователя # if live action then action update mutable params of profile (live)
self.clVars.Set("cl_action", "desktop", True) # else action is update user profile
if live:
self.clVars.Set("cl_action", "live", True)
else:
self.clVars.Set("cl_action", "desktop", True)
# Применяем профили для пользователя # Применяем профили для пользователя
dirsAndFiles = self.applyTemplatesFromUser(progress) dirsAndFiles = self.applyTemplatesFromUser(progress)
if not dirsAndFiles: if not dirsAndFiles:

@ -35,7 +35,9 @@ EXAMPLES = _("%prog user_name")
DESCRIPTION = _("Create home directory for the new user account") DESCRIPTION = _("Create home directory for the new user account")
# Опции командной строки # Опции командной строки
CMD_OPTIONS = [{'longOption':"set"}, CMD_OPTIONS = [{'longOption':"live",
'help':_("update only mutable parameters of user profile")},
{'longOption':"set"},
{'longOption':"install", {'longOption':"install",
'help':_("install package")}, 'help':_("install package")},
{'longOption':"uninstall", {'longOption':"uninstall",
@ -141,7 +143,7 @@ class desktop_cmd(share_cmd):
def createHome(self, optObj): def createHome(self, optObj):
"""Создание домашней директории""" """Создание домашней директории"""
return self.logicObj.createHome(optObj.progress) return self.logicObj.createHome(optObj.progress,optObj.live)
def install(self): def install(self):
"""Инсталяция программы""" """Инсталяция программы"""

@ -34,7 +34,9 @@ class fillVars():
return "" return ""
def get_ac_desktop_install(self): def get_ac_desktop_install(self):
"""переключатель для шаблонов инсталяции и удаления программы""" """
Trigger for templates of package installation and uninstallation
"""
ret = "" ret = ""
action = self.Get("cl_action") action = self.Get("cl_action")
if action in ("install","merge"): if action in ("install","merge"):
@ -44,7 +46,9 @@ class fillVars():
return ret return ret
def get_ac_desktop_merge(self): def get_ac_desktop_merge(self):
"""переключатель для шаблонов merge""" """
Trigger for the merge templates
"""
ret = "" ret = ""
action = self.Get("cl_action") action = self.Get("cl_action")
if action in ("install","merge"): if action in ("install","merge"):
@ -52,13 +56,25 @@ class fillVars():
return ret return ret
def get_ac_desktop_desktop(self): def get_ac_desktop_desktop(self):
"""переключатель для шаблонов создания пользовательского профиля""" """
Trigger for templates of user profile creating
"""
ret = "" ret = ""
action = self.Get("cl_action") action = self.Get("cl_action")
if action in ("desktop",): if action in ("desktop",):
ret = "up" ret = "up"
return ret return ret
def get_ac_desktop_live(self):
"""
Trigger for templates update live configuration of profile
"""
ret = ""
action = self.Get("cl_action")
if action in ("desktop","live"):
ret = "up"
return ret
def get_ur_domain_set(self): def get_ur_domain_set(self):
'''доменный пользователь "on", "off"''' '''доменный пользователь "on", "off"'''
ret = "off" ret = "off"

@ -54,15 +54,18 @@ class Data:
# Host Jabber пользователя # Host Jabber пользователя
ur_jid_host = {'mode':"w"} ur_jid_host = {'mode':"w"}
# переключатель для шаблонов merge # trigger for the merge templates
ac_desktop_merge = {} ac_desktop_merge = {}
# переключатель для шаблонов инсталяции и удаления программы # trigger for templates of package installation and uninstallation
ac_desktop_install = {} ac_desktop_install = {}
# переключатель для шаблонов создания пользовательского профиля # trigger for templates of user profile creating
ac_desktop_desktop = {} ac_desktop_desktop = {}
# trigger for templates update live configuration of profile
ac_desktop_live = {}
# доменный пользователь "on", "off" # доменный пользователь "on", "off"
ur_domain_set = {} ur_domain_set = {}

Loading…
Cancel
Save