commit:     6f4d6dc0552b1bad10f8953de786cf0e78d975ee
Author:     Devan Franchini <twitch153 <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 30 22:08:12 2016 +0000
Commit:     Devan Franchini <twitch153 <AT> gentoo <DOT> org>
CommitDate: Sat Apr 30 22:18:41 2016 +0000
URL:        https://gitweb.gentoo.org/proj/layman.git/commit/?id=6f4d6dc0

Repairs layman-updater rebuild functionality

reposconf.py: Adds rebuild __init__ parameter to fix rebuild
functionality
updater.py: Sets rebuild parameter for repos.conf ConfigHandler class

 layman/config_modules/reposconf/reposconf.py | 9 +++++----
 layman/updater.py                            | 2 +-
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/layman/config_modules/reposconf/reposconf.py 
b/layman/config_modules/reposconf/reposconf.py
index 1f0fd04..79991c9 100644
--- a/layman/config_modules/reposconf/reposconf.py
+++ b/layman/config_modules/reposconf/reposconf.py
@@ -53,7 +53,7 @@ def check_conf_path(conf_path):
 
 class ConfigHandler:
 
-    def __init__(self, config, overlays):
+    def __init__(self, config, overlays, rebuild=False):
 
         self.config = config
         self.output = config['output']
@@ -61,7 +61,7 @@ class ConfigHandler:
         self.path = check_conf_path(config['repos_conf'])
         self.storage = config['storage']
         self.repo_config = None
-        self.rebuild = False
+        self.rebuild = rebuild
 
         self.read()
 
@@ -193,14 +193,15 @@ class ConfigHandler:
                 if self.rebuild:
                     # start over with a fresh instance
                     self.repo_conf = ConfigParser.ConfigParser()
-                if not self.repo_conf.sections():
+                    for i in sorted(self.overlays):
+                        self.add(self.overlays[i], no_write=True)
+                if not self.repo_conf.sections() and not self.rebuild:
                     if ('disable' in self.config.keys() and not
                         self.config['disable'][0].lower() == 'all'):
                         for i in sorted(self.overlays):
                             if not i == delete:
                                 self.add(self.overlays[i], no_write=True)
                 self.repo_conf.write(laymanconf)
-                self.rebuild = False
             return True
         except IOError as error:
             self.output.error('ReposConf: ConfigHandler.write(); Failed to 
write "'\

diff --git a/layman/updater.py b/layman/updater.py
index 6384429..2bfc241 100644
--- a/layman/updater.py
+++ b/layman/updater.py
@@ -273,7 +273,7 @@ class Main(object):
         # can write the overlays to it.
         open(self.config['repos_conf'], 'w').close()
         from layman.config_modules.reposconf.reposconf import ConfigHandler
-        repos_conf = ConfigHandler(self.config, overlays)
+        repos_conf = ConfigHandler(self.config, overlays, rebuild=True)
         repos_conf.write()
 
 

Reply via email to