public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Devan Franchini" <twitch153@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/layman:master commit in: layman/
Date: Sun, 19 Jul 2015 03:53:55 +0000 (UTC)	[thread overview]
Message-ID: <1437277935.4adf2984147062b8cadc5e769aa49c48abab2e93.twitch153@gentoo> (raw)

commit:     4adf2984147062b8cadc5e769aa49c48abab2e93
Author:     Devan Franchini <twitch153 <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 19 03:50:25 2015 +0000
Commit:     Devan Franchini <twitch153 <AT> gentoo <DOT> org>
CommitDate: Sun Jul 19 03:52:15 2015 +0000
URL:        https://gitweb.gentoo.org/proj/layman.git/commit/?id=4adf2984

updater.py: Modifies the db_type setting method

In order to preserve the config file set up of the layman config
file the set_db_type() function has been modified to not use
configparser as it doesn't preserve comments. Changes have also
been made in case the database file ends with the old extension,
so the backup name will end in ".bak" as opposed to the database's
file type.

 layman/updater.py | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/layman/updater.py b/layman/updater.py
index f727632..9d7b176 100644
--- a/layman/updater.py
+++ b/layman/updater.py
@@ -7,6 +7,7 @@ import argparse
 import os
 import shutil
 import sys
+import re
 
 from layman.api           import LaymanAPI
 from layman.compatibility import fileopen
@@ -122,8 +123,10 @@ class Main(object):
 
         db = DB(self.config)
         installed = self.config['installed']
-        backup_name = installed + '.' + self.config['db_type']
         old_ext = os.path.splitext(installed)[1]
+        backup_name = installed + '.' + self.config['db_type']
+        if old_ext == self.config['db_type']:
+            backup_name = installed + '.bak'
         new_name = installed.replace(old_ext, '.db')
 
         if not os.path.isfile(installed):
@@ -271,17 +274,15 @@ class Main(object):
         repos_conf = ConfigHandler(self.config, overlays)
         repos_conf.write()
 
-    def set_db_type(self, migrate_type, installed):
-        if sys.hexversion >= 0x30200f0:
-            import configparser as ConfigParser
-        else:
-            import ConfigParser
 
-        config = ConfigParser.ConfigParser()
+    def set_db_type(self, migrate_type, installed):
         config_path = self.config['config']\
                       % {'configdir': self.config['configdir']}
+        db_type_found = False
+        installed_found = False
         new_conf = os.path.dirname(config_path) + '/' + '._cfg0000_' +\
                    os.path.basename(config_path)
+        new_lines = []
 
         try:
             shutil.copy(config_path, new_conf)
@@ -300,15 +301,28 @@ class Main(object):
             raise Exception(msg)
 
         try:
-            config.read(new_conf)
+            with fileopen(new_conf, 'r') as laymanconf:
+                lines = laymanconf.readlines()
         except Exception as err:
             msg = '  set_db_type() error; failed to read config at "%(path)s".'\
                   '\n  Error was: "%(err)s"' % {'path': new_conf, 'err': err}
             self.output.error(msg)
             raise err
 
-        config.set('MAIN', 'db_type', migrate_type)
-        config.set('MAIN', 'installed', '%(storage)s/'+installed)
+        for line in lines:
+            if re.search('^#*\s*db_type\s*:', line):
+                db_type_found = True
+                line = 'db_type : ' + migrate_type + '\n'
+            if re.search('^#*\s*installed\s*:', line):
+                installed_found = True
+                line = 'installed : %(storage)s/' + installed + '\n'
+            new_lines.append(line)
+
+        if not db_type_found:
+            new_lines.append('db_type : ' + migrate_type + '\n')
+        if not installed_found:
+            new_lines.append('installed : %(storage)s/' + installed + '\n')
 
         with fileopen(new_conf, 'w') as laymanconf:
-            config.write(laymanconf)
+            for line in new_lines:
+                laymanconf.write(line)


             reply	other threads:[~2015-07-19  3:54 UTC|newest]

Thread overview: 246+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-19  3:53 Devan Franchini [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-04-24 20:59 [gentoo-commits] proj/layman:master commit in: layman/ Brian Dolbec
2020-04-24 20:59 Brian Dolbec
2017-03-22  6:36 Brian Dolbec
2017-02-02 17:12 Brian Dolbec
2017-02-02  1:12 Devan Franchini
2017-02-02  1:12 Devan Franchini
2016-11-10  2:59 Devan Franchini
2016-05-10 22:13 Brian Dolbec
2016-05-02  3:30 Devan Franchini
2016-03-10  0:00 Devan Franchini
2016-03-09 23:37 Devan Franchini
2016-02-29  6:21 Devan Franchini
2016-01-29 10:21 Brian Dolbec
2015-12-31  1:03 Devan Franchini
2015-12-26 23:24 Brian Dolbec
2015-11-29  3:26 Devan Franchini
2015-11-29  3:12 Devan Franchini
2015-10-17  3:20 Devan Franchini
2015-10-16 18:49 Devan Franchini
2015-10-16 18:49 Devan Franchini
2015-09-23 15:25 Devan Franchini
2015-09-05  6:03 Devan Franchini
2015-08-28  1:48 Devan Franchini
2015-08-28  1:48 Devan Franchini
2015-08-28  1:48 Devan Franchini
2015-08-04  1:05 Devan Franchini
2015-07-17 17:05 Devan Franchini
2015-07-17 17:05 Devan Franchini
2015-07-17 17:05 Devan Franchini
2015-07-15 16:15 Devan Franchini
2015-07-15 15:53 Devan Franchini
2015-07-13 23:05 Devan Franchini
2015-07-13 13:26 Devan Franchini
2015-07-09 17:23 Devan Franchini
2015-07-09 16:18 Devan Franchini
2015-06-16  3:45 Devan Franchini
2015-06-14  4:12 Devan Franchini
2015-06-13  4:53 Devan Franchini
2015-06-13  2:38 Devan Franchini
2015-06-13  2:31 Devan Franchini
2015-05-13 21:32 Devan Franchini
2015-05-13 21:27 Devan Franchini
2015-05-13 20:38 Devan Franchini
2015-05-13 20:05 Devan Franchini
2015-05-13 19:58 Devan Franchini
2015-04-22 17:40 Devan Franchini
2015-04-20 17:15 Devan Franchini
2015-03-27 23:42 Devan Franchini
2015-03-26 22:50 Devan Franchini
2015-03-26 22:06 Devan Franchini
2015-03-24 23:08 Devan Franchini
2015-03-24 22:56 Devan Franchini
2015-03-24 22:20 Devan Franchini
2015-03-24 16:08 Devan Franchini
2015-03-07 22:40 Devan Franchini
2015-03-07 22:40 Devan Franchini
2015-03-07 22:10 Devan Franchini
2015-03-07 22:02 Devan Franchini
2015-02-21 18:41 Devan Franchini
2015-02-17  5:07 Brian Dolbec
2015-02-09 18:25 Devan Franchini
2015-02-08  4:20 Brian Dolbec
2015-02-08  4:20 Brian Dolbec
2015-02-08  2:58 Devan Franchini
2015-02-08  1:57 Brian Dolbec
2015-02-08  0:33 Devan Franchini
2015-02-05  2:56 Devan Franchini
2015-02-05  2:31 Devan Franchini
2015-02-05  2:20 Devan Franchini
2015-02-03  2:43 Devan Franchini
2014-12-08  4:15 Devan Franchini
2014-12-04 20:46 Devan Franchini
2014-11-13 19:03 Brian Dolbec
2014-11-13 18:43 Brian Dolbec
2014-11-13 18:43 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-13 18:08 Brian Dolbec
2014-11-02 21:14 Devan Franchini
2014-09-28 22:42 Devan Franchini
2014-09-20 17:47 Devan Franchini
2014-09-19 18:13 Devan Franchini
2014-09-19 18:13 Devan Franchini
2014-08-28 22:54 Brian Dolbec
2014-08-28 22:01 Devan Franchini
2014-08-28 22:01 Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-17  4:01 ` Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-16 22:46 ` Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-15 23:16 ` Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-15 22:33 ` Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-15 23:27 ` Devan Franchini
2014-08-19  1:49 Devan Franchini
2014-08-17 20:55 Devan Franchini
2014-08-19  1:49 ` Devan Franchini
2014-08-17 14:15 Brian Dolbec
2014-08-16 18:06 Brian Dolbec
2014-08-15 23:59 Devan Franchini
2014-08-19  1:49 ` Devan Franchini
2014-06-16  3:40 Brian Dolbec
2014-06-16  3:40 Brian Dolbec
2014-06-16  3:40 Brian Dolbec
2014-06-16  3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16  3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-06-16  3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16  3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-06-16  3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16  3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-06-16  3:37 [gentoo-commits] proj/layman:gsoc2014 " Brian Dolbec
2014-06-16  3:40 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2014-05-07 22:18 Devan Franchini
2014-03-10  3:18 Brian Dolbec
2013-12-29  2:30 Brian Dolbec
2013-08-18 14:48 Brian Dolbec
2013-07-29  1:46 Brian Dolbec
2013-01-11 18:29 Brian Dolbec
2012-12-16 18:13 Brian Dolbec
2012-11-28  4:14 Brian Dolbec
2012-11-28  4:02 Brian Dolbec
2012-11-28  4:02 Brian Dolbec
2012-11-18 22:15 Brian Dolbec
2012-11-18 22:15 Brian Dolbec
2012-11-18 22:15 Brian Dolbec
2012-11-01  4:00 Brian Dolbec
2012-10-30  8:30 Brian Dolbec
2012-10-17  6:21 Brian Dolbec
2012-10-17  6:21 Brian Dolbec
2012-10-13 22:20 Brian Dolbec
2012-10-13 22:20 Brian Dolbec
2012-10-08  5:37 Brian Dolbec
2012-10-07 23:40 Brian Dolbec
2012-10-07 23:40 Brian Dolbec
2012-06-07  4:49 Brian Dolbec
2012-06-07  4:49 Brian Dolbec
2012-06-07  4:49 Brian Dolbec
2012-04-14  2:14 Brian Dolbec
2012-04-09 19:47 Brian Dolbec
2012-04-01 21:54 Brian Dolbec
2012-03-26  3:43 Brian Dolbec
2012-03-04 15:36 Brian Dolbec
2011-12-27  2:20 Brian Dolbec
2011-10-27  4:42 Brian Dolbec
2011-10-26 23:19 Brian Dolbec
2011-10-14  3:14 Brian Dolbec
2011-09-24  6:07 Brian Dolbec
2011-08-25  3:33 Brian Dolbec
2011-08-21  7:53 Brian Dolbec
2011-08-21  7:53 Brian Dolbec
2011-08-21  7:53 Brian Dolbec
2011-08-20 17:06 Brian Dolbec
2011-08-20 17:06 Brian Dolbec
2011-08-11  3:24 Brian Dolbec
2011-08-11  3:24 Brian Dolbec
2011-08-11  3:24 Brian Dolbec
2011-08-11  3:24 Brian Dolbec
2011-08-09  2:46 Brian Dolbec
2011-08-07 21:21 Brian Dolbec
2011-08-07  7:12 Brian Dolbec
2011-08-07  7:12 Brian Dolbec
2011-08-07  7:12 Brian Dolbec
2011-08-07  6:00 Brian Dolbec
2011-08-07  2:29 Brian Dolbec
2011-08-06 20:30 Brian Dolbec
2011-08-06 18:29 Brian Dolbec
2011-08-06 18:29 Brian Dolbec
2011-07-28 21:33 Brian Dolbec
2011-07-23  6:45 Brian Dolbec
2011-07-20 18:34 Brian Dolbec
2011-07-12 20:01 Brian Dolbec
2011-07-12 19:57 Brian Dolbec
2011-07-12 19:57 Brian Dolbec
2011-07-12 19:02 Brian Dolbec
2011-07-12 19:02 Brian Dolbec
2011-05-18  5:19 Brian Dolbec
2011-05-18  5:13 Brian Dolbec
2011-05-14 13:06 Brian Dolbec
2011-05-05  9:44 Brian Dolbec
2011-05-02  5:25 Brian Dolbec
2011-05-01  2:18 Brian Dolbec
2011-05-01  0:53 Brian Dolbec
2011-05-01  0:26 Brian Dolbec
2011-04-30 22:37 Brian Dolbec
2011-04-30 22:37 Brian Dolbec
2011-04-30  6:37 Brian Dolbec
2011-04-30  6:37 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-04-27 10:58 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19 11:01 Brian Dolbec
2011-02-19  4:49 Brian Dolbec
2011-02-19  4:47 Brian Dolbec
2011-02-19  4:10 Brian Dolbec
2011-02-19  4:07 Brian Dolbec
2011-02-17 21:53 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  6:00 Brian Dolbec
2011-02-14  0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14  6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14  0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14  6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14  0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14  6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14  0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14  6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec
2011-02-14  0:54 [gentoo-commits] proj/layman:overlord_merge " Brian Dolbec
2011-02-14  6:00 ` [gentoo-commits] proj/layman:master " Brian Dolbec

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1437277935.4adf2984147062b8cadc5e769aa49c48abab2e93.twitch153@gentoo \
    --to=twitch153@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox