Skip to content

Commit

Permalink
Several bugfixes in mod upgrades
Browse files Browse the repository at this point in the history
  • Loading branch information
ajventer committed Oct 4, 2016
1 parent 428a1b1 commit 6b1b736
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
1 change: 1 addition & 0 deletions libPyKAN/installed.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ def __getitem__(self, key):
for k in ['installed_modules','manual_modules','ckan_modules']:
if key in self.installed_mods[k]:
return self.installed_mods[k][key]
raise KeyError

def list_modules(self):
for i in ['installed_modules','manual_modules','ckan_modules']:
Expand Down
9 changes: 5 additions & 4 deletions libPyKAN/modmanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ def uninstall_list(self):

return remlist

def remove(self, modname):
def remove(self, modname, deregister=True):
print "Removing module %s" % modname
target = os.path.join(self.settings.KSPDIR,'GameData',modname)
filelist = self.installed[modname].get('installed_files',[])
Expand All @@ -166,12 +166,13 @@ def remove(self, modname):
if os.path.isdir(target):
util.debug('Removing %s' % target)
shutil.rmtree(target)
self.installed.remove_mod(modname)
if deregister:
self.installed.remove_mod(modname)

def upgrade(self):
for mod in [i['identifier'] for i in self.repoentries]:
self.remove(mod)
self.get_download_list()
self.remove(mod, False)
self.get_download_list('no','no')
self.download()
self.install()

Expand Down
11 changes: 8 additions & 3 deletions pyKAN
Original file line number Diff line number Diff line change
Expand Up @@ -258,12 +258,16 @@ if __name__ == '__main__':
if options.module:
mods = [i for i in repo.find_latest(options.module) if i in INSTALLED.all_modnames()]
else:
mods = INSTALLED.all_modnames()
mods = list(INSTALLED.all_modnames())
upgradeables = []
for mod in mods:
if Version(repo.find_latest(mod).get('version','0.0.0')) > Version(INSTALLED[mod].get('version','0.0.0')):
m = repo.find_latest(mod)[mod]
print m.get('version')
if Version(m.get('version','0.0.0')) > Version(INSTALLED[mod].get('version','0.0.0')):
upgradeables.append(mod)
print "Mods that can be upgraded: \n\t%s" %('\n\t'.join(upgradeables))
print "Mods that can be upgraded: \n"
for u in upgradeables:
print '\t%s %s -> %s' %(u,INSTALLED[mod].get('version','0.0.0'),repo.find_latest(u).get('version','0.0.0'))
return upgradeables

def upgrade():
Expand All @@ -272,6 +276,7 @@ if __name__ == '__main__':
sys.exit()
MM = ModManager(uplist, settings,repo)
MM.upgrade()

print "Modules upgraded"


Expand Down

0 comments on commit 6b1b736

Please sign in to comment.