Add archlinux to the CI
This commit is contained in:
parent
7877ba0da5
commit
91e80527fc
@ -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 @@
|
|||||||
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 = {
|
|||||||
'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
|
|||||||
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):
|
|||||||
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:
|
||||||
|
Loading…
Reference in New Issue
Block a user