1
0
mirror of synced 2024-12-22 04:39:58 +01:00

Add archlinux to the CI

This commit is contained in:
jvoisin 2018-09-01 15:07:01 +02:00
parent 7877ba0da5
commit 91e80527fc
3 changed files with 25 additions and 7 deletions

View File

@ -53,3 +53,10 @@ tests:fedora:
- dnf install -y python3 python3-mutagen python3-gobject gdk-pixbuf2 poppler-glib gdk-pixbuf2 gdk-pixbuf2-modules cairo-gobject cairo python3-cairo perl-Image-ExifTool mailcap
- gdk-pixbuf-query-loaders-64 > /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders.cache
- python3 setup.py test
tests:archlinux:
image: archlinux/base
stage: test
script:
- pacman -Sy --noconfirm python-mutagen python-gobject gdk-pixbuf2 poppler-glib gdk-pixbuf2 python-cairo perl-image-exiftool python-setuptools mailcap
- python3 setup.py test

View File

@ -3,7 +3,7 @@
import os
import collections
import importlib
from typing import Dict
from typing import Dict, Optional
# make pyflakes happy
assert Dict
@ -35,13 +35,24 @@ DEPENDENCIES = {
'mutagen': 'Mutagen',
}
def _get_exiftool_path() -> Optional[str]:
exiftool_path = '/usr/bin/exiftool'
if os.path.isfile(exiftool_path):
if os.access(exiftool_path, os.X_OK): # pragma: no cover
return exiftool_path
# ArchLinux
exiftool_path = '/usr/bin/vendor_perl/exiftool'
if os.path.isfile(exiftool_path):
if os.access(exiftool_path, os.X_OK): # pragma: no cover
return exiftool_path
return None
def check_dependencies() -> dict:
ret = collections.defaultdict(bool) # type: Dict[str, bool]
exiftool = '/usr/bin/exiftool'
ret['Exiftool'] = False
if os.path.isfile(exiftool) and os.access(exiftool, os.X_OK): # pragma: no cover
ret['Exiftool'] = True
ret['Exiftool'] = True if _get_exiftool_path() else False
for key, value in DEPENDENCIES.items():
ret[value] = True

View File

@ -13,7 +13,7 @@ import gi
gi.require_version('GdkPixbuf', '2.0')
from gi.repository import GdkPixbuf
from . import abstract
from . import abstract, _get_exiftool_path
# Make pyflakes happy
assert Set
@ -40,7 +40,7 @@ class _ImageParser(abstract.AbstractParser):
self.filename to prevent parameter injections, so we need to take care
of this.
"""
fun = lambda f: subprocess.check_output(['/usr/bin/exiftool', '-json', f])
fun = lambda f: subprocess.check_output([_get_exiftool_path(), '-json', f])
if re.search('^[a-z0-9/]', self.filename) is None:
out = self.__handle_problematic_filename(self.filename, fun)
else: