Bug fix: rotate plugin
[geeqie.git] / scripts / devel-install.sh
1 #!/bin/sh
2
3 #/*
4 # * Copyright (C) 2023 The Geeqie Team
5 # *
6 # * Author: Colin Clark
7 # *
8 # * This program is free software; you can redistribute it and/or modify
9 # * it under the terms of the GNU General Public License as published by
10 # * the Free Software Foundation; either version 2 of the License, or
11 # * (at your option) any later version.
12 # *
13 # * This program is distributed in the hope that it will be useful,
14 # * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # * GNU General Public License for more details.
17 # *
18 # * You should have received a copy of the GNU General Public License along
19 # * with this program; if not, write to the Free Software Foundation, Inc.,
20 # * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 # */
22
23 ## @file
24 ## @brief Install additional files for Geeqie development purposes
25 ##
26
27 if ! { [ -d ".git" ] && [ -d "src" ] && [ -f "geeqie.1" ] && [ -f "doxygen.conf" ]; }
28 then
29     printf "This is not the project root directory\n"
30     exit 1
31 fi
32
33 if ! zenity --title="Install files for Geeqie development" --question --no-wrap --text "This script will install:\n
34 <tt>
35 curl                # for this script
36 default-jre         # for doxygen diagrams
37 libdw-dev           # for devel=enabled
38 libdwarf-dev        # for devel=enabled
39 libunwind-dev       # for devel=enabled
40 mdl                 # for meson tests (markdown files)
41 shellcheck          # for meson tests (shell scripts)
42 texlive-font-utils  # for doxygen diagrams
43 xvfb                # for meson tests
44 </tt>
45
46 The following will be downloaded to $HOME/bin/ and made executable:
47 <tt>
48 https://github.com/plantuml/plantuml/releases/download/<i>latest</i>/plantuml-<i>latest</i>.jar  # for doxygen diagrams
49 https://raw.githubusercontent.com/Anvil/bash-doxygen/master/doxygen-bash.sed       # for documenting script files\
50 </tt>
51
52 The following snap will be installed:
53 <tt>
54 snapd    # for installing snaps
55 mdl      # for checking markdown files\n
56 </tt>
57
58 Continue?"
59 then
60     exit 0
61 fi
62
63 if ! mkdir -p "$HOME"/bin
64 then
65     printf "Cannot create %s\n" "$HOME"/bin
66     exit 1
67 fi
68
69 sudo apt update
70
71 sudo apt install curl
72 sudo apt install default-jre
73 sudo apt install libdw-dev
74 sudo apt install libdwarf-dev
75 sudo apt install libunwind-dev
76 sudo apt install shellcheck
77 sudo apt install texlive-font-utils
78 sudo apt install xvfb
79
80 sudo apt install snapd
81 sudo snap install mdl
82
83 cd "$HOME"/bin || exit 1
84
85 if ! [ -f doxygen-bash.sed ]
86 then
87     wget https://raw.githubusercontent.com/Anvil/bash-doxygen/master/doxygen-bash.sed
88     chmod +x doxygen-bash.sed
89 fi
90
91 latest_plantuml=$(curl --silent -qI https://github.com/plantuml/plantuml/releases/latest | awk -F '/' '/^location/ {print  substr($NF, 1, length($NF)-1)}')
92
93 if ! [ -f "plantuml-${latest_plantuml#v}.jar" ]
94 then
95     wget "https://github.com/plantuml/plantuml/releases/download/$latest_plantuml/plantuml-${latest_plantuml#v}.jar"
96     ln --symbolic --force "plantuml-${latest_plantuml#v}.jar" plantuml.jar
97     chmod +x plantuml.jar
98 fi
99
100