Bug fix: rotate plugin
[geeqie.git] / scripts / get-test-images.sh
1 #!/bin/sh
2 #**********************************************************************
3 # Copyright (C) 2023 - The Geeqie Team
4 #
5 # Author: Colin Clark
6 #
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
11 #
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License along
18 # with this program; if not, write to the Free Software Foundation, Inc.,
19 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 #**********************************************************************
21
22 ## @file
23 ## @brief Download test images
24 ##
25 ## $1 destination directory \n
26 ## $2 git test image repo. \n
27 ##
28
29 # GitHub workflow actions run on Ubuntu 22.04 (at the time of writing)
30 # Some libraries are not available in that version, so do not run
31 # image tests on the relevant files.
32 #
33 # 20.04 is checked for so that if a development system is running 23.x
34 # but all required libraries are not installed, an error will be flagged.
35 version=$(lsb_release -d)
36 if echo "$version" | grep -q "Ubuntu 22.04" > /dev/null
37 then
38         exceptions="
39         jxl
40         libjxl-dev
41         "
42 else
43         exceptions=""
44 fi
45
46 if [ ! -d "$1" ]
47 then
48         mkdir -p "$1"
49
50         if ! git clone "$2" "$1"
51         then
52                 exit 1
53         fi
54 fi
55
56 for file in "$1/images/"*
57 do
58         library_installed=true
59         i=0
60
61         for exception_string in $exceptions
62         do
63                 if [ $((i % 2)) -eq 0 ]
64                 then
65                         file_extension="$exception_string"
66                 else
67                         library_file="$exception_string"
68                         basefile_name=$(basename "$file")
69                         basefile_match=$(basename "$basefile_name" "$file_extension")
70
71                         if [ ! "$basefile_name" = "$basefile_match" ]
72                         then
73                                 if ! dpkg-query --show --showformat='${Status}' "$library_file" > /dev/null 2>&1
74                                 then
75                                         library_installed=false
76                                         break
77                                 fi
78                         fi
79                 fi
80
81                 i=$((i + 1))
82         done
83
84         if [ "$library_installed" = "true" ]
85         then
86                 echo "$file"
87         fi
88 done
89
90 exit 0