mirror of
https://git.pleroma.social/pleroma/relay.git
synced 2024-11-21 22:17:59 +00:00
check for config in multiple directories
This commit is contained in:
parent
0ad0bb0ff5
commit
a271cf22b4
|
@ -35,7 +35,7 @@ if typing.TYPE_CHECKING:
|
||||||
class Application(web.Application):
|
class Application(web.Application):
|
||||||
DEFAULT: Application = None
|
DEFAULT: Application = None
|
||||||
|
|
||||||
def __init__(self, cfgpath: str):
|
def __init__(self, cfgpath: str | None):
|
||||||
web.Application.__init__(self,
|
web.Application.__init__(self,
|
||||||
middlewares = [
|
middlewares = [
|
||||||
handle_api_path
|
handle_api_path
|
||||||
|
|
|
@ -7,6 +7,7 @@ import typing
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from platformdirs import user_config_dir
|
||||||
|
|
||||||
from .misc import IS_DOCKER
|
from .misc import IS_DOCKER
|
||||||
|
|
||||||
|
@ -51,7 +52,7 @@ if IS_DOCKER:
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
def __init__(self, path: str, load: bool = False):
|
def __init__(self, path: str, load: bool = False):
|
||||||
self.path = Path(path).expanduser().resolve()
|
self.path = Config.get_config_dir()
|
||||||
|
|
||||||
self.listen = None
|
self.listen = None
|
||||||
self.port = None
|
self.port = None
|
||||||
|
@ -82,6 +83,24 @@ class Config:
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_config_dir(path: str | None = None) -> Path:
|
||||||
|
if path:
|
||||||
|
return Path(path).expanduser().resolve()
|
||||||
|
|
||||||
|
dirs = (
|
||||||
|
Path("relay.yaml").resolve(),
|
||||||
|
Path(user_config_dir("activityrelay"), "relay.yaml"),
|
||||||
|
Path("/etc/activityrelay/relay.yaml")
|
||||||
|
)
|
||||||
|
|
||||||
|
for directory in dirs:
|
||||||
|
if directory.exists():
|
||||||
|
return directory
|
||||||
|
|
||||||
|
return dirs[0]
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def sqlite_path(self) -> Path:
|
def sqlite_path(self) -> Path:
|
||||||
if not os.path.isabs(self.sq_path):
|
if not os.path.isabs(self.sq_path):
|
||||||
|
|
|
@ -59,10 +59,10 @@ def check_alphanumeric(text: str) -> str:
|
||||||
|
|
||||||
|
|
||||||
@click.group('cli', context_settings={'show_default': True}, invoke_without_command=True)
|
@click.group('cli', context_settings={'show_default': True}, invoke_without_command=True)
|
||||||
@click.option('--config', '-c', default='relay.yaml', help='path to the relay\'s config')
|
@click.option('--config', '-c', help='path to the relay\'s config')
|
||||||
@click.version_option(version=__version__, prog_name='ActivityRelay')
|
@click.version_option(version=__version__, prog_name='ActivityRelay')
|
||||||
@click.pass_context
|
@click.pass_context
|
||||||
def cli(ctx: click.Context, config: str) -> None:
|
def cli(ctx: click.Context, config: str | None) -> None:
|
||||||
ctx.obj = Application(config)
|
ctx.obj = Application(config)
|
||||||
|
|
||||||
if not ctx.invoked_subcommand:
|
if not ctx.invoked_subcommand:
|
||||||
|
|
|
@ -6,6 +6,7 @@ barkshark-sql@https://git.barkshark.xyz/barkshark/bsql/archive/0.1.1.tar.gz
|
||||||
click>=8.1.2
|
click>=8.1.2
|
||||||
hamlish-jinja@https://git.barkshark.xyz/barkshark/hamlish-jinja/archive/0.3.5.tar.gz
|
hamlish-jinja@https://git.barkshark.xyz/barkshark/hamlish-jinja/archive/0.3.5.tar.gz
|
||||||
hiredis==2.3.2
|
hiredis==2.3.2
|
||||||
|
platformdirs==4.2.0
|
||||||
pyyaml>=6.0
|
pyyaml>=6.0
|
||||||
redis==5.0.1
|
redis==5.0.1
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue