mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 03:08:55 -05:00
Prefer home directory even for system users if it exists (#5022)
This commit is contained in:
parent
ed4f2cf466
commit
d87199779e
@ -36,13 +36,21 @@ basic_config_default: Dict[str, Any] = {
|
|||||||
"CORE_PATH_APPEND": "core",
|
"CORE_PATH_APPEND": "core",
|
||||||
}
|
}
|
||||||
|
|
||||||
config_dir = None
|
|
||||||
appdir = appdirs.AppDirs("Red-DiscordBot")
|
appdir = appdirs.AppDirs("Red-DiscordBot")
|
||||||
if sys.platform == "linux":
|
config_dir = Path(appdir.user_config_dir)
|
||||||
if 0 < os.getuid() < 1000: # pylint: disable=no-member
|
_system_user = sys.platform == "linux" and 0 < os.getuid() < 1000
|
||||||
|
if _system_user:
|
||||||
|
if Path.home().exists():
|
||||||
|
# We don't want to break someone just because they created home dir
|
||||||
|
# but were already using the site_data_dir.
|
||||||
|
#
|
||||||
|
# But otherwise, we do want Red to use user_config_dir if home dir exists.
|
||||||
|
_maybe_config_file = Path(appdir.site_data_dir) / "config.json"
|
||||||
|
if _maybe_config_file.exists():
|
||||||
|
config_dir = _maybe_config_file.parent
|
||||||
|
else:
|
||||||
config_dir = Path(appdir.site_data_dir)
|
config_dir = Path(appdir.site_data_dir)
|
||||||
if not config_dir:
|
|
||||||
config_dir = Path(appdir.user_config_dir)
|
|
||||||
config_file = config_dir / "config.json"
|
config_file = config_dir / "config.json"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,14 +6,12 @@ _early_init()
|
|||||||
import asyncio
|
import asyncio
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import os
|
|
||||||
import sys
|
import sys
|
||||||
import re
|
import re
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict, Any, Optional, Union
|
from typing import Dict, Any, Optional, Union
|
||||||
|
|
||||||
import appdirs
|
|
||||||
import click
|
import click
|
||||||
|
|
||||||
from redbot.core.cli import confirm
|
from redbot.core.cli import confirm
|
||||||
@ -23,23 +21,16 @@ from redbot.core.utils._internal_utils import (
|
|||||||
cli_level_to_log_level,
|
cli_level_to_log_level,
|
||||||
)
|
)
|
||||||
from redbot.core import config, data_manager, drivers
|
from redbot.core import config, data_manager, drivers
|
||||||
|
from redbot.core.data_manager import appdir, config_dir, config_file
|
||||||
from redbot.core.drivers import BackendType, IdentifierData
|
from redbot.core.drivers import BackendType, IdentifierData
|
||||||
|
|
||||||
conversion_log = logging.getLogger("red.converter")
|
conversion_log = logging.getLogger("red.converter")
|
||||||
|
|
||||||
config_dir = None
|
|
||||||
appdir = appdirs.AppDirs("Red-DiscordBot")
|
|
||||||
if sys.platform == "linux":
|
|
||||||
if 0 < os.getuid() < 1000: # pylint: disable=no-member # Non-exist on win
|
|
||||||
config_dir = Path(appdir.site_data_dir)
|
|
||||||
if not config_dir:
|
|
||||||
config_dir = Path(appdir.user_config_dir)
|
|
||||||
try:
|
try:
|
||||||
config_dir.mkdir(parents=True, exist_ok=True)
|
config_dir.mkdir(parents=True, exist_ok=True)
|
||||||
except PermissionError:
|
except PermissionError:
|
||||||
print("You don't have permission to write to '{}'\nExiting...".format(config_dir))
|
print("You don't have permission to write to '{}'\nExiting...".format(config_dir))
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
config_file = config_dir / "config.json"
|
|
||||||
|
|
||||||
instance_data = data_manager.load_existing_config()
|
instance_data = data_manager.load_existing_config()
|
||||||
if instance_data is None:
|
if instance_data is None:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user