Ignore:
Timestamp:
Jan 18, 2018, 1:34:53 PM (2 years ago)
Author:
Juanma
Message:

Added snap support. Minor changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lliurex-store/trunk/fuentes/python3-lliurex-store.install/usr/share/lliurexstore/plugins/zmdManager.py

    r6057 r6645  
    1515        def __init__(self):
    1616                self.locale=locale.getlocale()[0]
    17                 self.dbg=0
    18                 self.zmdPath='/usr/share/zero-center/zmds'
     17                self.dbg=False
     18                self.zmd_folder='/usr/share/zero-center/zmds'
    1919                self.disabled=False
    20                 if hasattr(sys,'last_value') or not (os.path.exists(self.zmdPath)):
     20                if hasattr(sys,'last_value') or not (os.path.exists(self.zmd_folder)):
    2121                        #If there's an error at this point it only could be an importError caused by xmlrpc
    2222                        self.disabled=True
    23                 self.pluginInfo={'install':'zmd','pkginfo':'zmd','remove':'zmd'}
     23                self.plugin_actions={'install':'zmd','pkginfo':'zmd','remove':'zmd'}
    2424                self.progress=0
    2525                self.n4dclient=''
     
    3030        #def __init__
    3131
    32         def set_debug(self,dbg='1'):
    33                 self.dbg=int(dbg)
     32        def set_debug(self,dbg=True):
     33                self.dbg=dbg
    3434                self._debug ("Debug enabled")
    3535        #def set__debug
    3636
    3737        def _debug(self,msg=''):
    38                 if self.dbg==1:
     38                if self.dbg:
    3939                        print ('DEBUG Zmd: '+str(msg))
    4040        #def _debug
    4141
    4242        def register(self):
    43                 return(self.pluginInfo)
     43                return(self.plugin_actions)
    4444        #def register
    4545
     
    5555                        try:
    5656                                self.n4dclient=self._n4d_connect()
    57                                 for appInfo in applist:
     57                                for app_info in applist:
    5858                                        if (action):
    5959                                                if action=='install':
    60                                                         dataList.append(self._install_Zmd(appInfo))
     60                                                        dataList.append(self._install_Zmd(app_info))
    6161                                                if action=='remove':
    62                                                         dataList.append(self._remove_Zmd(appInfo))
     62                                                        dataList.append(self._remove_Zmd(app_info))
    6363                                                if action=='pkginfo':
    64                                                         dataList.append(self._get_Zmd_Info(appInfo))
     64                                                        dataList.append(self._get_Zmd_Info(app_info))
    6565                                self.result['data']=list(dataList)
    6666                        except:
     
    7575#               dataList['status']={'status':status,'msg':msg}
    7676       
    77         def _callback(self,zmdLauncher):
     77        def _callback(self,zmd_launcher):
    7878                inc=1
    7979                limit=99
    8080                n4dvars=self.n4dclient.get_variable("","VariablesManager","ZEROCENTER")
    81                 if zmdLauncher in n4dvars.keys():
    82                         if n4dvars[zmdLauncher]['pulsating']:
     81                if zmd_launcher in n4dvars.keys():
     82                        if n4dvars[zmd_launcher]['pulsating']:
    8383                                margin=limit-self.progress
    8484                                inc=round(margin/limit,3)
     
    8686        #def _callback
    8787
    88         def _install_Zmd(self,appInfo):
    89                 zmd=self.zmdPath+'/'+appInfo['package']+'.zmd'
     88        def _install_Zmd(self,app_info):
     89                zmd=self.zmd_folder+'/'+app_info['package']+'.zmd'
    9090                self._debug("Installing "+str(zmd))
    91                 appInfo=self._get_Zmd_Info(appInfo)
    92                 if appInfo['state']=='installed':
     91                app_info=self._get_Zmd_Info(app_info)
     92                if app_info['state']=='installed':
    9393                        err=4
    9494                else:
     
    9696                                err=0
    9797                                try:
    98 #                                       zmdsudo=['gksudo',zmd]
    99                                         zmdsudo=['pe',zmd]
    100                                         self._debug("executing "+str(zmdsudo))
    101                                         zmdCmd=subprocess.Popen(zmdsudo,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)
    102                                         zmdLauncher=os.path.basename(zmd)
    103                                         zmdLauncher=os.path.splitext(zmdLauncher)[0]
    104                                         while zmdCmd.poll() is None:
    105                                                 self._callback(zmdLauncher)
     98#                                       zmd_sudo=['gksudo',zmd]
     99                                        zmd_sudo=['pe',zmd]
     100                                        self._debug("executing "+str(zmd_sudo))
     101                                        launched_zmd=subprocess.Popen(zmd_sudo,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)
     102                                        zmd_launcher=os.path.basename(zmd)
     103                                        zmd_launcher=os.path.splitext(zmd_launcher)[0]
     104                                        while launched_zmd.poll() is None:
     105                                                self._callback(zmd_launcher)
    106106                                                time.sleep(0.4)
    107                                         zmdResult=zmdCmd.stdout.read()
    108                                         zmdError=zmdCmd.stderr.read()
    109                                         self._debug("Error: "+str(zmdError))
    110                                         self._debug("Result: "+str(zmdResult))
     107                                        zmd_status=launched_zmd.stdout.read()
     108                                        zmd_err=launched_zmd.stderr.read()
     109                                        self._debug("Error: "+str(zmd_err))
     110                                        self._debug("Result: "+str(zmd_status))
    111111                                except Exception as e:
    112112                                        self._debug(str(e))
    113113                                finally:
    114                                         appInfo=self._get_Zmd_Info(appInfo)
    115                                         if appInfo['state']!='installed':
     114                                        app_info=self._get_Zmd_Info(app_info)
     115                                        if app_info['state']!='installed':
    116116                                                err=5
    117117                        else:
    118118                                err=8
    119119                self._set_status(err)
    120                 return(appInfo)
     120                return(app_info)
    121121        #def _install_Zmd
    122122
    123         def _remove_Zmd(self,appInfo):
    124                 zmd=appInfo['package']+'.zmd'
     123        def _remove_Zmd(self,app_info):
     124                zmd=app_info['package']+'.zmd'
    125125                self._debug("Removing "+str(zmd))
    126                 os.chdir(self.zmdPath)
     126                os.chdir(self.zmd_folder)
    127127                sw_continue=False
    128128                err=0
    129129                try:
    130                         removePackages=[]
     130                        remove_packages=[]
    131131                        f=open(zmd,'r')
    132132                        for line in f:
     
    144144                                                pkg=pkg.replace('"','')
    145145                                                self._debug("Append to remove list: "+pkg)
    146                                                 removePackages.append(pkg)
     146                                                remove_packages.append(pkg)
    147147                                        f2.close()
    148148                        f.close()
     
    151151                        print(str(e))
    152152                if sw_continue:
    153                         zeroScript='/tmp/zeroScript'
    154                         f3=open(zeroScript,'w')
     153                        zmd_script='/tmp/zmd_script'
     154                        f3=open(zmd_script,'w')
    155155                        f3.write('#!/bin/bash'+"\n")
    156                         for pkg in removePackages:
     156                        for pkg in remove_packages:
    157157                                f3.write('/usr/bin/zero-installer remove '+pkg+"\n")
    158                         f3.write ("zero-center set-non-configured "+appInfo['package']+"\n")
     158                        f3.write ("zero-center set-non-configured "+app_info['package']+"\n")
    159159                        f3.close()
    160                         os.chmod(zeroScript,stat.S_IEXEC|stat.S_IREAD|stat.S_IWRITE|stat.S_IROTH|stat.S_IWOTH|stat.S_IXOTH|stat.S_IRGRP|stat.S_IWGRP|stat.S_IXGRP)
    161                         zmdsudo=['gksudo',zeroScript]
     160                        os.chmod(zmd_script,stat.S_IEXEC|stat.S_IREAD|stat.S_IWRITE|stat.S_IROTH|stat.S_IWOTH|stat.S_IXOTH|stat.S_IRGRP|stat.S_IWGRP|stat.S_IXGRP)
     161                        zmd_sudo=['gksudo',zmd_script]
    162162                        try:
    163                                 self._debug("Executing "+str(zmdsudo))
    164                                 zmdLauncher=os.path.basename(zmd)
    165                                 zmdLauncher=os.path.splitext(zmdLauncher)[0]
    166                                 zmdCmd=subprocess.Popen(zmdsudo,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)
     163                                self._debug("Executing "+str(zmd_sudo))
     164                                zmd_launcher=os.path.basename(zmd)
     165                                zmd_launcher=os.path.splitext(zmd_launcher)[0]
     166                                launched_zmd=subprocess.Popen(zmd_sudo,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)
    167167                                self._debug("Launched")
    168                                 while zmdCmd.poll() is None:
    169                                         self._callback(zmdLauncher)
     168                                while launched_zmd.poll() is None:
     169                                        self._callback(zmd_launcher)
    170170                                        time.sleep(0.2)
    171                                 zmdResult=zmdCmd.stdout.read()
    172                                 zmdError=zmdCmd.stderr.read()
     171                                zmd_status=launched_zmd.stdout.read()
     172                                zmd_err=launched_zmd.stderr.read()
    173173                        except Exception as e:
    174174                                err=6
    175175                                self._debug(str(e))
    176                         self._debug("Error: "+str(zmdError))
    177                         self._debug("Result: "+str(zmdResult))
    178                         appInfo=self._get_Zmd_Info(appInfo)
    179                         if appInfo['state']=='installed':
     176                        self._debug("Error: "+str(zmd_err))
     177                        self._debug("Result: "+str(zmd_status))
     178                        app_info=self._get_Zmd_Info(app_info)
     179                        if app_info['state']=='installed':
    180180                                err=6
    181                         os.remove(zeroScript)
     181                        os.remove(zmd_script)
    182182                else:
    183183                        err=6
    184184                self._set_status(err)
    185                 return(appInfo)
     185                return(app_info)
    186186        #def _remove_Zmd
    187187
    188         def _get_Zmd_Info(self,appInfo):
    189                 zmd=appInfo['package']
    190                 appInfo['state']='Available'
     188        def _get_Zmd_Info(self,app_info):
     189                zmd=app_info['package']
     190                app_info['state']='Available'
    191191                try:
    192192                        n4dvars=self.n4dclient.get_variable("","VariablesManager","ZEROCENTER")
     
    197197                                                if 'state' in n4dvars[key]:
    198198                                                        if n4dvars[key]['state']==1:
    199                                                                 appInfo['state']='installed'
     199                                                                app_info['state']='installed'
    200200                        else:
    201201                                self._set_status(2)
    202202                except Exception as e:
    203203                        self._set_status(10)
    204 #               self.result['data'].append(appInfo)
    205 #               self.result.append(appInfo)
    206                 if appInfo['state']!='installed':
    207                 #There're some zomandos that may be unregistered, so we check again
    208                         zmdApp='/usr/share/zero-center/applications/'+zmd+".app"
    209                         if os.path.isfile(zmdApp):
    210                                 f=open(zmdApp,'r')
    211                                 fileContent=f.readlines()
    212                                 f.close
    213                                 sw_service=False
    214                                 for line in fileContent:
    215                                         if line.startswith('Service'):
    216                                                 sw_service=True
    217                                                 if 'True' not in line:
    218                                                         print(line)
    219                                                         appInfo['state']='installed'
    220                                 if sw_service==False:
    221                                         appInfo['state']='installed'
    222                        
    223                 return(appInfo)
     204#               self.result['data'].append(app_info)
     205#               self.result.append(app_info)
     206                return(app_info)
    224207        #def _get_Zmd_Info
    225208       
Note: See TracChangeset for help on using the changeset viewer.