diff --git a/morituri/common/Makefile.am b/morituri/common/Makefile.am index 3d64742..1413edf 100644 --- a/morituri/common/Makefile.am +++ b/morituri/common/Makefile.am @@ -9,6 +9,7 @@ morituri_PYTHON = \ cache.py \ common.py \ config.py \ + directory.py \ drive.py \ encode.py \ gstreamer.py \ diff --git a/morituri/common/config.py b/morituri/common/config.py index 23e8eb5..125f87f 100644 --- a/morituri/common/config.py +++ b/morituri/common/config.py @@ -27,7 +27,7 @@ import codecs import tempfile import ConfigParser -from morituri.common import log +from morituri.common import directory, log class Config(log.Loggable): @@ -43,18 +43,7 @@ class Config(log.Loggable): self.open() def getDefaultPath(self): - try: - from xdg import BaseDirectory - directory = os.path.join(BaseDirectory.xdg_config_home, 'morituri') - if not os.path.isdir(directory): - os.mkdir(directory) - path = os.path.join(directory, 'morituri.conf') - self.info('Using XDG, configuration file is %s' % path) - return path - except ImportError: - path = os.path.expanduser('~/.moriturirc') - self.info('Not using XDG, configuration file is %s' % path) - return path + return directory.Directory().getConfig() def open(self): # Open the file with the correct encoding diff --git a/morituri/common/directory.py b/morituri/common/directory.py new file mode 100644 index 0000000..1ad4765 --- /dev/null +++ b/morituri/common/directory.py @@ -0,0 +1,54 @@ +# -*- Mode: Python; test-case-name: morituri.test.test_common_directory -*- +# vi:si:et:sw=4:sts=4:ts=4 + +# Morituri - for those about to RIP + +# Copyright (C) 2013 Thomas Vander Stichele + +# This file is part of morituri. +# +# morituri is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# morituri is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with morituri. If not, see . + +import os + +from morituri.common import log + + +class Directory(log.Loggable): + + def getConfig(self): + try: + from xdg import BaseDirectory + directory = BaseDirectory.save_config_path('morituri') + path = os.path.join(directory, 'morituri.conf') + self.info('Using XDG, configuration file is %s' % path) + except ImportError: + path = os.path.expanduser('~/.moriturirc') + self.info('Not using XDG, configuration file is %s' % path) + return path + + + def getCache(self): + try: + from xdg import BaseDirectory + path = BaseDirectory.save_cache_path('morituri') + self.info('Using XDG, cache directory is %s' % path) + except ImportError: + path = os.path.expanduser('~/.morituri/cache') + if not os.path.exists(path): + os.makedirs(path) + self.info('Not using XDG, cache directory is %s' % path) + return path + +