Skip to content
Snippets Groups Projects
Commit 91e80527 authored by Julien (jvoisin) Voisin's avatar Julien (jvoisin) Voisin
Browse files

Add archlinux to the CI

parent 7877ba0d
No related branches found
No related tags found
No related merge requests found
Pipeline #18681 passed
...@@ -53,3 +53,10 @@ tests:fedora: ...@@ -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 - 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 - gdk-pixbuf-query-loaders-64 > /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders.cache
- python3 setup.py test - 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
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
import os import os
import collections import collections
import importlib import importlib
from typing import Dict from typing import Dict, Optional
# make pyflakes happy # make pyflakes happy
assert Dict assert Dict
...@@ -35,13 +35,24 @@ DEPENDENCIES = { ...@@ -35,13 +35,24 @@ DEPENDENCIES = {
'mutagen': 'Mutagen', '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: def check_dependencies() -> dict:
ret = collections.defaultdict(bool) # type: Dict[str, bool] ret = collections.defaultdict(bool) # type: Dict[str, bool]
exiftool = '/usr/bin/exiftool' ret['Exiftool'] = True if _get_exiftool_path() else False
ret['Exiftool'] = False
if os.path.isfile(exiftool) and os.access(exiftool, os.X_OK): # pragma: no cover
ret['Exiftool'] = True
for key, value in DEPENDENCIES.items(): for key, value in DEPENDENCIES.items():
ret[value] = True ret[value] = True
......
...@@ -13,7 +13,7 @@ import gi ...@@ -13,7 +13,7 @@ import gi
gi.require_version('GdkPixbuf', '2.0') gi.require_version('GdkPixbuf', '2.0')
from gi.repository import GdkPixbuf from gi.repository import GdkPixbuf
from . import abstract from . import abstract, _get_exiftool_path
# Make pyflakes happy # Make pyflakes happy
assert Set assert Set
...@@ -40,7 +40,7 @@ class _ImageParser(abstract.AbstractParser): ...@@ -40,7 +40,7 @@ class _ImageParser(abstract.AbstractParser):
self.filename to prevent parameter injections, so we need to take care self.filename to prevent parameter injections, so we need to take care
of this. 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: if re.search('^[a-z0-9/]', self.filename) is None:
out = self.__handle_problematic_filename(self.filename, fun) out = self.__handle_problematic_filename(self.filename, fun)
else: else:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment