Skip to content

Commit

Permalink
fix logger writing to hardcoded path
Browse files Browse the repository at this point in the history
  • Loading branch information
s-riesenberg committed Feb 13, 2024
1 parent 285d012 commit 8810f23
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 12 deletions.
14 changes: 5 additions & 9 deletions awsume/autoawsume/main.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
import json
import subprocess
import configparser
import time
import sys
import os
import logging
from logging.handlers import RotatingFileHandler
from pathlib import Path
from datetime import datetime, timedelta
import dateutil

from ..awsumepy.lib.aws_files import get_aws_files, delete_section
from ..awsumepy.lib.aws_files import get_aws_files
from ..awsumepy.lib.logger import LogFormatter
from ..awsumepy.lib.logger import logger as awsume_logger
from ..awsumepy.lib import constants
from ..awsumepy.lib import exceptions
from ..awsumepy.lib.config_management import migrate_to_xdg_base_directories
from .. import awsumepy

logger = logging.getLogger('autoawsume') # type: logging.Logger
Expand Down Expand Up @@ -80,11 +78,9 @@ def main():


def configure_logger():
log_dir = str(Path('~/.awsume/logs/').expanduser())
log_file = str(Path('~/.awsume/logs/autoawsume.log').expanduser())
migrate_to_xdg_base_directories()

if not os.path.exists(log_dir):
os.makedirs(log_dir)
log_file = str(constants.AWSUME_LOG_DIR / 'autoawsume.log')

log_handler = RotatingFileHandler(
filename=log_file,
Expand Down
12 changes: 9 additions & 3 deletions awsume/awsumepy/lib/config_management.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,15 @@
- set [config_key] [config_value]
"""


def load_config() -> dict:
def migrate_to_xdg_base_directories() -> None:
if not os.path.exists(str(constants.AWSUME_DIR)):
os.makedirs(str(constants.AWSUME_DIR))
if not os.path.exists(str(constants.AWSUME_CONFIG.parent)):
os.makedirs(str(constants.AWSUME_CONFIG.parent))
if not os.path.isfile(str(constants.AWSUME_CONFIG)):
open(str(constants.AWSUME_CONFIG), 'a').close()
if not os.path.exists(str(constants.AWSUME_LOG_DIR)):
os.makedirs(str(constants.AWSUME_LOG_DIR))
if constants.IS_USING_XDG_CONFIG_HOME and os.path.isfile(constants.AWSUME_CONFIG_LEGACY_PATH):
# handle migration to XDG base directory: config file
move(constants.AWSUME_CONFIG_LEGACY_PATH, constants.AWSUME_CONFIG)
Expand All @@ -46,16 +47,21 @@ def load_config() -> dict:
if constants.IS_USING_XDG_DATA_HOME and os.path.isdir(constants.AWSUME_CACHE_DIR_LEGACY_PATH):
# handle migration to XDG base directory: data dir
move(constants.AWSUME_DIR_LEGACY_PATH, constants.AWSUME_DIR)
if constants.IS_USING_XDG_STATE_HOME and os.path.isdir(constants.AWSUME_LOG_DIR_LEGACY_PATH):
# handle migration to XDG base directory: log dir
move(constants.AWSUME_LOG_DIR_LEGACY_PATH, constants.AWSUME_LOG_DIR)
if (
constants.IS_USING_XDG_CONFIG_HOME and
constants.IS_USING_XDG_DATA_HOME and
constants.IS_USING_XDG_CACHE_HOME and
constants.IS_USING_XDG_STATE_HOME and
os.path.isdir(constants.AWSUME_DIR_LEGACY_PATH)
):
# cleanup legacy ~/.awsume dir
os.rmdir(constants.AWSUME_DIR_LEGACY_PATH)


def load_config() -> dict:
migrate_to_xdg_base_directories()

options = None
try:
Expand Down
8 changes: 8 additions & 0 deletions awsume/awsumepy/lib/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
IS_USING_XDG_CONFIG_HOME = bool(os.getenv('XDG_CONFIG_HOME'))
IS_USING_XDG_DATA_HOME = bool(os.getenv('XDG_DATA_HOME'))
IS_USING_XDG_CACHE_HOME = bool(os.getenv('XDG_CACHE_HOME'))
IS_USING_XDG_STATE_HOME = bool(os.getenv('XDG_STATE_HOME'))

AWSUME_DIR_LEGACY_PATH = Path('~/.awsume').expanduser()
AWSUME_CONFIG_LEGACY_PATH = Path('~/.awsume' + '/config.yaml').expanduser()
AWSUME_CACHE_DIR_LEGACY_PATH = Path('~/.awsume/cache').expanduser()
AWSUME_LOG_DIR_LEGACY_PATH = Path('~/.awsume/logs').expanduser()

if IS_USING_XDG_CONFIG_HOME:
XDG_CONFIG_HOME = Path(os.getenv('XDG_CONFIG_HOME')).expanduser()
Expand All @@ -27,5 +29,11 @@
else:
AWSUME_CACHE_DIR = AWSUME_CACHE_DIR_LEGACY_PATH

if IS_USING_XDG_STATE_HOME:
XDG_STATE_HOME = Path(os.getenv('XDG_STATE_HOME')).expanduser()
AWSUME_LOG_DIR = XDG_STATE_HOME / 'awsume/logs'
else:
AWSUME_LOG_DIR = AWSUME_LOG_DIR_LEGACY_PATH

DEFAULT_CREDENTIALS_FILE = Path('~/.aws/credentials').expanduser()
DEFAULT_CONFIG_FILE = Path('~/.aws/config').expanduser()

0 comments on commit 8810f23

Please sign in to comment.