Sfoglia il codice sorgente

Move the database default location

This is now in XDG_DATA_HOME
Oz N Tiram 6 anni fa
parent
commit
a763a674d6
3 ha cambiato i file con 12 aggiunte e 12 eliminazioni
  1. 4 5
      pwman/__init__.py
  2. 5 4
      pwman/util/config.py
  3. 3 3
      tests/test_config.py

+ 4 - 5
pwman/__init__.py

@@ -76,7 +76,7 @@ def parser_options(formatter_class=argparse.HelpFormatter):  # pragma: no cover
                                      formatter_class=formatter_class)
     parser.add_argument('-c', '--config', dest='cfile',
                         default=os.path.join(
-                                             config.find_config_dir('pwman'),
+                                             config.find_config_dir('pwman')[0],
                                              'config'),
                         help='cofiguration file to read')
     parser.add_argument('-d', '--database', dest='dbase')
@@ -93,10 +93,9 @@ def parser_options(formatter_class=argparse.HelpFormatter):  # pragma: no cover
 
 
 def get_conf(args):
-    config_dir = config.find_config_dir('pwman')
-
-    if not os.path.isdir(config_dir):  # pragma: no cover
-        os.makedirs(config_dir, exist_ok=True)
+    for dir in config.find_config_dir('pwman'):
+        if not os.path.isdir(dir):  # pragma: no cover
+            os.makedirs(dir, exist_ok=True)
 
     configp = config.Config(args.cfile, config.default_config)
     return configp

+ 5 - 4
pwman/util/config.py

@@ -80,10 +80,11 @@ def find_config_dir(appname):
     elif platform.system() == 'Windows':
         return os.path.expandvars(os.path.join('$APPDATA', appname))
     else:
-        return os.path.join(XDG_CONFIG_HOME, appname)
+        return (os.path.join(XDG_CONFIG_HOME, appname),
+                os.path.join(XDG_DATA_HOME, appname))
 
 
-config_dir = find_config_dir('pwman')
+config_dir, data_dir = find_config_dir('pwman')
 
 
 default_config = {'Global': {'umask': '0100', 'colors': 'yes',
@@ -92,9 +93,9 @@ default_config = {'Global': {'umask': '0100', 'colors': 'yes',
                              'lock_timeout': '600'
                              },
                   'Database': {
-                      'dburi': 'sqlite://' + os.path.join(config_dir,
+                      'dburi': 'sqlite://' + os.path.join(data_dir,
                                                           'pwman.db')},
-                  'Readline': {'history': os.path.join(config_dir,
+                  'Readline': {'history': os.path.join(data_dir,
                                                        'history')},
                   'Crypto': {'supress_warning': 'no'},
 

+ 3 - 3
tests/test_config.py

@@ -46,7 +46,7 @@ class TestFindConfigWindows(unittest.TestCase):
         with unittest.mock.patch('platform.system') as pl:
             pl.return_value = 'Windows'
             os.environ['APPDATA'] = 'balls'
-            cdir = config.find_config_dir('zzzz')
+            cdir, data_dir = config.find_config_dir('zzzz')
 
             self.assertEqual(
                 os.path.expandvars(os.path.join('$APPDATA', 'zzzz')),
@@ -65,7 +65,7 @@ class TestFindConfigCompat(unittest.TestCase):
         os.rmdir(self.c_path)
 
     def test_compat(self):
-        cdir = config.find_config_dir('zzzz_compat_posix')
+        cdir, data_dir = config.find_config_dir('zzzz_compat_posix')
         self.assertEqual(self.c_path, cdir)
 
 
@@ -79,7 +79,7 @@ class TestFindConfigXDG(unittest.TestCase):
 
     def test_new_scheme(self):
         # assert we get xdg_fine with Linux
-        cdir = config.find_config_dir('zzzz_posix')
+        cdir, data_dir = config.find_config_dir('zzzz_posix')
         self.assertEqual(cdir, os.path.expanduser("~/.config/zzzz_posix"))