This repository has been archived on 2025-01-28. You can view files and clone it, but cannot push or open issues or pull requests.
Erovia 8eeab1112a Fix commandline parsing and flake8 findings, rebase
Fixed commandline and config parsing. Thx @xplusplus.
Rebased on master and fixed merge conflicts.
2020-02-15 15:19:03 -08:00

49 lines
1.3 KiB
Python

"""Functions that help us work with files and folders.
"""
import logging
import os
from qmk.errors import NoSuchKeyboardError
def keymap(keyboard):
"""Locate the correct directory for storing a keymap.
Args:
keyboard
The name of the keyboard. Example: clueboard/66/rev3
"""
for directory in ['.', '..', '../..', '../../..', '../../../..', '../../../../..']:
basepath = os.path.normpath(os.path.join('keyboards', keyboard, directory, 'keymaps'))
if os.path.exists(basepath):
return basepath
logging.error('Could not find keymaps directory!')
raise NoSuchKeyboardError('Could not find keymaps directory for: %s' % keyboard)
def normpath(path):
"""Returns the fully resolved absolute path to a file.
This function will return the absolute path to a file as seen from the
directory the script was called from.
"""
if path and path[0] == '/':
return os.path.normpath(path)
return os.path.normpath(os.path.join(os.environ['ORIG_CWD'], path))
def file_lines(filename):
""" Return a files content, line by line
Args:
filename: path to the file
Returns:
an list, in which each item is a line of the file
"""
with open(filename, "r") as fd:
return fd.readlines()