When removing a ppa, don't forget deb-src line

(Also remove the [ppa-name].list file if empty.)
This commit is contained in:
Tim Kersten 2012-01-16 23:50:12 +00:00
parent a9162bd0e8
commit 9c2ca52382
1 changed files with 16 additions and 3 deletions

View File

@ -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