Changeset 7390 for air-manager


Ignore:
Timestamp:
Jun 7, 2018, 10:37:45 AM (16 months ago)
Author:
Juanma
Message:

improved removal of apps

Location:
air-manager/trunk/fuentes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • air-manager/trunk/fuentes/debian/changelog

    r7386 r7390  
     1air-manager (0.9.0) xenial; urgency=medium
     2
     3  * Improved removal of apps
     4
     5 -- Juanma Navarro Mañez <juanma1980@gmail.com>  Thu, 07 Jun 2018 10:37:05 +0200
     6
    17air-manager (0.1.3.0) xenial; urgency=medium
    28
  • air-manager/trunk/fuentes/python3-air-manager/airmanager/airmanager.py

    r7386 r7390  
    448448
    449449        def remove_air_app(self,*kwarg):
     450
     451                def supercow_remove(*args):
     452                        air_id=args[-1]
     453                        self._debug("Supercow remove %s"%air_id)
     454                        my_env=os.environ.copy()
     455                        my_env["DISPLAY"]=":0"
     456                        pkgname=subprocess.check_output(["apt-cache","search",air_id],env=my_env,universal_newlines=True)
     457                        pkglist=pkgname.split(' ')
     458                        for pkg in pkglist:
     459                                self._debug("Testing %s"%pkg)
     460                                if air_id.lower() in pkg.lower():
     461                                        try:
     462                                                self._debug("Uninstalling %s"%pkg)
     463                                                sw_uninstall_err=subprocess.check_output(["apt-get","-y","remove",pkg],universal_newlines=True,env=my_env)
     464                                                self._debug("Uninstalled OK %s"%pkg)
     465                                                sw_err=0
     466                                        except Exception as e:
     467                                                self._debug(e)
     468                                        break
     469
    450470                sw_err=1
    451471                my_env=os.environ.copy()
     
    466486                        else:
    467487                                try:
    468                                         #Let's try with supercow's power
    469                                         pkgname=subprocess.check_output(["apt-cache","search",air_dict['air_id']],env=my_env,universal_newlines=True)
    470                                         pkglist=pkgname.split(' ')
    471                                         for pkg in pkglist:
    472                                                 self._debug("Testing %s"%pkg)
    473                                                 if air_dict['air_id'].lower() in pkg.lower():
    474                                                         try:
    475                                                                 self._debug("Uninstalling %s"%pkg)
    476                                                                 sw_uninstall_err=subprocess.check_output(["apt-get","-y","remove",pkg],universal_newlines=True)
    477                                                                 self._debug("Uninstalled OK %s"%pkg)
    478                                                                 sw_err=0
    479                                                         except Exception as e:
    480                                                                 self._debug(e)
    481                                                         break
     488                                #Let's try with supercow's power
     489                                        supercow_remove(air_dict['air_id'])
    482490                                except Exception as e:
    483491                                                sw_uninstall_err=True
     492                                #Some air apps install more than one app so it's needed to check the installed desktop
     493                                try:
     494                                        if 'desktop' in air_dict.keys():
     495                                                self._debug("Checking full uninstall of %s"%air_dict['desktop'])
     496                                                if os.path.isfile(air_dict['desktop']):
     497                                                        self._debug("Uninstalling air from desktop")
     498                                                        desktop=air_dict['desktop'].replace('.desktop','')
     499                                                        supercow_remove(os.path.basename(desktop))
     500                                except Exception as e:
     501                                                sw_uninstall_err=True
     502
    484503                               
    485504                                if sw_err:
Note: See TracChangeset for help on using the changeset viewer.