When removing a ppa, don't forget deb-src line
(Also remove the [ppa-name].list file if empty.)
This commit is contained in:
		
					parent
					
						
							
								a9162bd0e8
							
						
					
				
			
			
				commit
				
					
						9c2ca52382
					
				
			
		
					 1 changed files with 16 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -7,13 +7,19 @@
 | 
			
		|||
#   1: if not
 | 
			
		||||
#   2: on other error
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
from aptsources import distro, sourceslist
 | 
			
		||||
from softwareproperties import ppa
 | 
			
		||||
from softwareproperties.SoftwareProperties import SoftwareProperties
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def remove_if_empty(file_name):
 | 
			
		||||
    with open(file_name, 'r') as f:
 | 
			
		||||
        if f.read().strip():
 | 
			
		||||
            return
 | 
			
		||||
        os.unlink(file_name)
 | 
			
		||||
 | 
			
		||||
def remove_repository(repository):
 | 
			
		||||
    #print 'repository:', repository
 | 
			
		||||
    codename = distro.get_distro().codename
 | 
			
		||||
| 
						 | 
				
			
			@ -21,11 +27,18 @@ def remove_repository(repository):
 | 
			
		|||
    (line, file) = ppa.expand_ppa_line(repository.strip(), codename)
 | 
			
		||||
    #print 'line:', line
 | 
			
		||||
    #print 'file:', file
 | 
			
		||||
    source_entry = sourceslist.SourceEntry(line, file)
 | 
			
		||||
    deb_source_entry = sourceslist.SourceEntry(line, file)
 | 
			
		||||
    src_source_entry = sourceslist.SourceEntry('deb-src{}'.format(line[3:]), file)
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        sp = SoftwareProperties()
 | 
			
		||||
        sp.remove_source(source_entry)
 | 
			
		||||
        sp.remove_source(deb_source_entry)
 | 
			
		||||
        try:
 | 
			
		||||
            # If there's a deb-src entry, remove that too
 | 
			
		||||
            sp.remove_source(src_source_entry)
 | 
			
		||||
        except:
 | 
			
		||||
            pass
 | 
			
		||||
        remove_if_empty(file)
 | 
			
		||||
        return True
 | 
			
		||||
    except ValueError:
 | 
			
		||||
        print >> sys.stderr, "Error: '%s' doesn't exists in a sourcelist file" % line
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue