diff --git a/README.md b/README.md index 2aeb4939ebe09dd1591b364cbde88901d45d318c..9cbc258b1b58877b0f78b772ec39954d068aff0a 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,18 @@ Nautilus, the default file manager of GNOME. Please note that mat2 requires at least Python3.5. +# Requirements setup on macOS (OS X) using Homewbrew + +```bash +brew install exiftool +brew install cairo +brew install pygobject3 +brew install poppler +brew install gdk-pixbuf +brew install librsvg +brew install ffmpeg +``` + # Running the test suite ```bash diff --git a/libmat2/bubblewrap.py b/libmat2/bubblewrap.py index 7a70635b0e86e7a60e39ecfbad09ac5717a7a68f..b859cf7dfb43e04da156ca99f89b7b35c58a2e1d 100644 --- a/libmat2/bubblewrap.py +++ b/libmat2/bubblewrap.py @@ -22,6 +22,10 @@ CalledProcessError = subprocess.CalledProcessError def _get_bwrap_path() -> str: + which_path = shutil.which('bwrap') + if which_path is not None and os.access(which_path, os.X_OK): + return which_path + bwrap_path = '/usr/bin/bwrap' if os.path.isfile(bwrap_path): if os.access(bwrap_path, os.X_OK): diff --git a/libmat2/exiftool.py b/libmat2/exiftool.py index 1ce60a123e481810395076b1c57308a3d456a9fe..091213a98b0596d390c54e492823e5e8de94d6fb 100644 --- a/libmat2/exiftool.py +++ b/libmat2/exiftool.py @@ -2,6 +2,7 @@ import functools import json import logging import os +import shutil import subprocess from typing import Dict, Union, Set @@ -71,6 +72,10 @@ class ExiftoolParser(abstract.AbstractParser): @functools.lru_cache() def _get_exiftool_path() -> str: # pragma: no cover + which_path = shutil.which('exiftool') + if which_path is not None and os.access(which_path, os.X_OK): + return which_path + possible_pathes = { '/usr/bin/exiftool', # debian/fedora '/usr/bin/vendor_perl/exiftool', # archlinux diff --git a/libmat2/video.py b/libmat2/video.py index 2b33bc0aec16521827e9b67ac53961feac008295..f513e61b249c920c4b1d1ea46bceedb66982af91 100644 --- a/libmat2/video.py +++ b/libmat2/video.py @@ -1,6 +1,7 @@ import subprocess import functools import os +import shutil import logging from typing import Dict, Union @@ -137,6 +138,10 @@ class MP4Parser(AbstractFFmpegParser): @functools.lru_cache() def _get_ffmpeg_path() -> str: # pragma: no cover + which_path = shutil.which('ffmpeg') + if which_path is not None and os.access(which_path, os.X_OK): + return which_path + ffmpeg_path = '/usr/bin/ffmpeg' if os.path.isfile(ffmpeg_path): if os.access(ffmpeg_path, os.X_OK):