summaryrefslogtreecommitdiffstats
path: root/lib/ansiblelint/file_utils.py
blob: f25382f3ffbe2bf5e33fcbb003b7d782903ec574 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"""Utility functions related to file operations."""
import os
from contextlib import contextmanager


def normpath(path) -> str:
    """
    Normalize a path in order to provide a more consistent output.

    Currently it generates a relative path but in the future we may want to
    make this user configurable.
    """
    # convertion to string in order to allow receiving non string objects
    return os.path.relpath(str(path))


@contextmanager
def cwd(path):
    """Context manager for temporary changing current working directory."""
    old_pwd = os.getcwd()
    os.chdir(path)
    try:
        yield
    finally:
        os.chdir(old_pwd)