mirror of
https://github.com/joglomedia/LEMPer.git
synced 2026-04-03 03:08:27 +00:00
118 lines
4.5 KiB
Bash
Executable File
118 lines
4.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# ImageMagick Installer
|
|
# Min. Requirement : GNU/Linux Ubuntu 18.04
|
|
# Last Build : 12/02/2022
|
|
# Author : MasEDI.Net (me@masedi.net)
|
|
# Since Version : 1.0.0
|
|
|
|
# Include helper functions.
|
|
if [[ "$(type -t run)" != "function" ]]; then
|
|
BASE_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )
|
|
# shellcheck disable=SC1091
|
|
. "${BASE_DIR}/utils.sh"
|
|
|
|
# Make sure only root can run this installer script.
|
|
requires_root "$@"
|
|
|
|
# Make sure only supported distribution can run this installer script.
|
|
preflight_system_check
|
|
fi
|
|
|
|
##
|
|
# Install ImageMagick.
|
|
##
|
|
function init_imagemagick_install() {
|
|
local SELECTED_INSTALLER=""
|
|
|
|
if [[ "${AUTO_INSTALL}" == true ]]; then
|
|
if [[ "${INSTALL_IMAGEMAGICK}" == true ]]; then
|
|
DO_INSTALL_IMAGEMAGICK="y"
|
|
SELECTED_INSTALLER=${IMAGEMAGICK_INSTALLER:-"repo"}
|
|
else
|
|
DO_INSTALL_IMAGEMAGICK="n"
|
|
fi
|
|
else
|
|
while [[ "${DO_INSTALL_IMAGEMAGICK}" != "y" && "${DO_INSTALL_IMAGEMAGICK}" != "Y" && \
|
|
"${DO_INSTALL_IMAGEMAGICK}" != "n" && "${DO_INSTALL_IMAGEMAGICK}" != "N" ]]; do
|
|
read -rp "Do you want to install ImageMagick library? [y/n]: " -i y -e DO_INSTALL_IMAGEMAGICK
|
|
done
|
|
fi
|
|
|
|
if [[ ${DO_INSTALL_IMAGEMAGICK} == y* || ${DO_INSTALL_IMAGEMAGICK} == Y* ]]; then
|
|
echo "Available ImageMagick installation method:"
|
|
echo " 1). Install from Repository (repo)"
|
|
echo " 2). Compile from Source (source)"
|
|
echo "--------------------------------"
|
|
|
|
while [[ ${SELECTED_INSTALLER} != "1" && ${SELECTED_INSTALLER} != "2" && ${SELECTED_INSTALLER} != "none" && \
|
|
${SELECTED_INSTALLER} != "repo" && ${SELECTED_INSTALLER} != "source" ]]; do
|
|
read -rp "Select an option [1-2]: " -e SELECTED_INSTALLER
|
|
done
|
|
|
|
case "${SELECTED_INSTALLER}" in
|
|
1 | "repo")
|
|
echo "Installing ImageMagick library from repository..."
|
|
run apt-get install -q -y imagemagick
|
|
;;
|
|
2 | "source")
|
|
echo "Installing ImageMagick library from source..."
|
|
|
|
local CURRENT_DIR && \
|
|
CURRENT_DIR=$(pwd)
|
|
|
|
if [[ "${IMAGEMAGICK_VERSION}" == "latest" ]]; then
|
|
IMAGEMAGICK_FILENAME="ImageMagick.tar.xz"
|
|
IMAGEMAGICK_ZIP_URL="https://www.imagemagick.org/download/${IMAGEMAGICK_FILENAME}"
|
|
else
|
|
IMAGEMAGICK_FILENAME="ImageMagick-${IMAGEMAGICK_VERSION}.tar.xz"
|
|
IMAGEMAGICK_ZIP_URL="https://download.imagemagick.org/ImageMagick/download/releases/${IMAGEMAGICK_FILENAME}"
|
|
fi
|
|
|
|
if curl -sLI "${IMAGEMAGICK_ZIP_URL}" | grep -q "HTTP/[.12]* [2].."; then
|
|
run cd "${BUILD_DIR}" && \
|
|
run curl -sSL -o "${IMAGEMAGICK_FILENAME}" "${IMAGEMAGICK_ZIP_URL}" && \
|
|
run tar -xf "${IMAGEMAGICK_FILENAME}" && \
|
|
run cd ImageMagick-*/ && \
|
|
run ./configure && \
|
|
run make && \
|
|
run make install && \
|
|
run ldconfig /usr/local/lib && \
|
|
run cd "${CURRENT_DIR}" || return 1
|
|
else
|
|
error "Something went wrong while downloading ImageMagick files."
|
|
fi
|
|
;;
|
|
*)
|
|
# Skip installation.
|
|
error "Installer method not supported. ImageMagick installation skipped."
|
|
;;
|
|
esac
|
|
|
|
if [[ "${DRYRUN}" != true ]]; then
|
|
if [[ -n $(command -v magick) ]]; then
|
|
success "ImageMagick version $(magick -version | grep ^Version | cut -d' ' -f3) has been installed."
|
|
elif [[ -n $(command -v convert) ]]; then
|
|
success "ImageMagick version $(convert -version | grep ^Version | cut -d' ' -f3) has been installed."
|
|
fi
|
|
else
|
|
info "ImageMagick installed in dry run mode."
|
|
fi
|
|
|
|
# Install PHP Imagick extension.
|
|
#Moved to .env file as custom PHP_EXTENSIONS.
|
|
else
|
|
info "ImageMagick installation skipped."
|
|
fi
|
|
}
|
|
|
|
echo "[ImageMagick Installation]"
|
|
|
|
# Start running things from a call at the end so if this script is executed
|
|
# after a partial download it doesn't do anything.
|
|
if [[ -n $(command -v magick) && "${FORCE_INSTALL}" != true ]]; then
|
|
info "ImageMagick already exists, installation skipped."
|
|
else
|
|
init_imagemagick_install "$@"
|
|
fi
|