Move path creation into configpaths module

This commit is contained in:
Philipp Hörist 2018-04-22 23:12:34 +02:00
parent 124e501f26
commit 8306f076b3
3 changed files with 25 additions and 52 deletions

View File

@ -1,50 +0,0 @@
# -*- coding:utf-8 -*-
## src/common/check_paths.py
##
## Copyright (C) 2005-2006 Travis Shirk <travis AT pobox.com>
## Nikos Kouremenos <kourem AT gmail.com>
## Copyright (C) 2005-2014 Yann Leboulanger <asterix AT lagaule.org>
## Copyright (C) 2006 Dimitur Kirov <dkirov AT gmail.com>
## Copyright (C) 2007 Tomasz Melcer <liori AT exroot.org>
## Copyright (C) 2008 Jean-Marie Traissard <jim AT lapin.org>
##
## This file is part of Gajim.
##
## Gajim 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; version 3 only.
##
## Gajim 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 Gajim. If not, see <http://www.gnu.org/licenses/>.
##
import os
import sys
from gajim.common import configpaths
from gajim.common.const import PathType
def check_and_possibly_create_paths():
for path in configpaths.get_paths(PathType.FOLDER):
if not os.path.exists(path):
create_path(path)
elif os.path.isfile(path):
print(_('%s is a file but it should be a directory') % path)
print(_('Gajim will now exit'))
sys.exit()
def create_path(directory):
head, tail = os.path.split(directory)
if not os.path.exists(head):
create_path(head)
if os.path.exists(directory):
return
print(('creating %s directory') % directory)
os.mkdir(directory, 0o700)

View File

@ -24,7 +24,9 @@
##
import os
import sys
import tempfile
from pathlib import Path
from gajim.common.const import PathType, PathLocation
@ -57,6 +59,28 @@ def init():
_paths.init()
def create_paths():
for path in get_paths(PathType.FOLDER):
if not isinstance(path, Path):
path = Path(path)
if path.is_file():
print(_('%s is a file but it should be a directory') % path)
print(_('Gajim will now exit'))
sys.exit()
if not path.exists():
for parent_path in reversed(path.parents):
# Create all parent folders
# dont use mkdir(parent=True), as it ignores `mode`
# when creating the parents
if not parent_path.exists():
print(('creating %s directory') % parent_path)
parent_path.mkdir(mode=0o700)
print(('creating %s directory') % path)
path.mkdir(mode=0o700)
class ConfigPaths:
def __init__(self):
self._paths = {}

View File

@ -156,12 +156,11 @@ class GajimApplication(Gtk.Application):
# Create and initialize Application Paths & Databases
from gajim.common import app
from gajim.common import check_paths
configpaths.create_paths()
from gajim.common import exceptions
from gajim.common import logger
from gajim.common import caps_cache
try:
check_paths.check_and_possibly_create_paths()
app.logger = logger.Logger()
caps_cache.initialize(app.logger)
except exceptions.DatabaseMalformed as error: