summaryrefslogtreecommitdiff
path: root/lib/lettering
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lettering')
-rw-r--r--lib/lettering/__init__.py3
-rw-r--r--lib/lettering/utils.py14
2 files changed, 15 insertions, 2 deletions
diff --git a/lib/lettering/__init__.py b/lib/lettering/__init__.py
index 60d47581..679ce23a 100644
--- a/lib/lettering/__init__.py
+++ b/lib/lettering/__init__.py
@@ -4,5 +4,4 @@
# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details.
from .font import Font, FontError
-from .utils import get_font_list
-from .utils import get_font_by_id
+from .utils import get_font_by_id, get_font_by_name, get_font_list
diff --git a/lib/lettering/utils.py b/lib/lettering/utils.py
index 99997643..f643dfa7 100644
--- a/lib/lettering/utils.py
+++ b/lib/lettering/utils.py
@@ -52,3 +52,17 @@ def get_font_by_id(font_id):
if font.id == font_id:
return font
return None
+
+
+def get_font_by_name(font_name):
+ font_paths = get_font_paths()
+ for font_path in font_paths:
+ try:
+ font_dirs = os.listdir(font_path)
+ except OSError:
+ continue
+ for font_dir in font_dirs:
+ font = Font(os.path.join(font_path, font_dir))
+ if font.name == font_name:
+ return font
+ return None