#!/usr/bin/env bash

APP=gimp

# CREATE A TEMPORARY DIRECTORY
mkdir -p tmp;
cd tmp;

# DOWNLOADING THE DEPENDENCIES
if test -f ./appimagetool; then
	echo " appimagetool already exists" 1> /dev/null
else
	echo " Downloading appimagetool..."
	wget -q https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O appimagetool
fi
if test -f ./pkg2appimage; then
	echo " pkg2appimage already exists" 1> /dev/null
else
	echo " Downloading pkg2appimage..."
	wget -q https://raw.githubusercontent.com/ivan-hc/AM-application-manager/main/tools/pkg2appimage
fi
chmod a+x ./appimagetool ./pkg2appimage
rm -f ./recipe.yml

# CREATING THE HEAD OF THE RECIPE
DEBIANBRANCH=experimental
GIMP=$(echo $(wget -q https://packages.debian.org/experimental/amd64/gimp/download -O - | grep "gimp_" | tail -1 | grep -o -P '(?<=<kbd>).*(?=</kbd>)'))
GIMP_DATA=$(echo $(wget -q https://packages.debian.org/experimental/all/gimp-data/download -O - | grep "gimp-data_" | tail -1 | grep -o -P '(?<=<kbd>).*(?=</kbd>)'))
libgimp=$(echo $(wget -q https://packages.debian.org/experimental/gimp -O - | grep libgimp | head -1 | grep -o -P '(?<=experimental/).*(?=">)'))
LIBGIMP=$(echo $(wget -q https://packages.debian.org/experimental/amd64/$libgimp/download -O - | grep "$libgimp""_" | tail -1 | grep -o -P '(?<=<kbd>).*(?=</kbd>)'))
VERSION=$(echo $(echo $GIMP | cut -c 6- | rev | cut -c 11- | rev))
echo "app: gimp
binpatch: true

ingredients:
  dist: $DEBIANBRANCH
  script:
    - wget http://ftp.debian.org/debian/pool/main/g/gimp/$GIMP
    - wget http://ftp.debian.org/debian/pool/main/g/gimp/$GIMP_DATA
    - wget http://ftp.debian.org/debian/pool/main/g/gimp/$LIBGIMP
  sources:
    - deb http://ftp.debian.org/debian/ $DEBIANBRANCH main
    - deb http://ftp.debian.org/debian/ unstable main" >> recipe.yml

# DOWNLOAD ALL THE NEEDED PACKAGES AND COMPILE THE APPDIR
./pkg2appimage ./recipe.yml

# CUSTOMIZE THE APPRUN
rm -R -f ./$APP/$APP.AppDir/AppRun
cat >> ./$APP/$APP.AppDir/AppRun << 'EOF'
#!/bin/sh
HERE="$(dirname "$(readlink -f "${0}")")"
export UNION_PRELOAD="${HERE}"
export PATH="${HERE}"/usr/bin/:"${HERE}"/usr/sbin/:"${HERE}"/usr/games/:"${HERE}"/bin/:"${HERE}"/sbin/:"${PATH}"
export LD_LIBRARY_PATH="${HERE}"/usr/lib/:"${HERE}"/usr/lib/i386-linux-gnu/:"${HERE}"/usr/lib/x86_64-linux-gnu/:"${HERE}"/usr/lib32/:"${HERE}"/usr/lib64/:"${HERE}"/lib/:"${HERE}"/lib/i386-linux-gnu/:"${HERE}"/lib/x86_64-linux-gnu/:"${HERE}"/lib32/:"${HERE}"/lib64/:"${LD_LIBRARY_PATH}"
export PKG_CONFIG_PATH="${HERE}"/usr/share/pkgconfig:$PKG_CONFIG_PATH
export GIMP2_LOCALEDIR="${HERE}"/usr/share/locale/
export GIMP2_DATADIR="${HERE}"/usr/share/gimp/2.0/
export GIMP2_SYSCONFDIR="${HERE}"/etc/gimp/2.0/
export GIMP2_PLUGINDIR="${HERE}"/usr/lib/gimp/2.0/
export GIMP3_LOCALEDIR="${HERE}"/usr/share/locale/
export GIMP3_DATADIR="${HERE}"/usr/share/gimp/2.99/
export GIMP3_SYSCONFDIR="${HERE}"/etc/gimp/2.99/
export GIMP3_PLUGINDIR="${HERE}"/usr/lib/gimp/2.99/
export GEGL_PATH="${HERE}"/usr/lib/x86_64-linux-gnu/gegl-0.4/
export BABL_PATH="${HERE}"/usr/lib/x86_64-linux-gnu/babl-0.1/
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's| %.||g')
exec ${HERE}/usr/bin/${EXEC} "$@"
EOF
chmod a+x ./$APP/$APP.AppDir/AppRun

# IMPORT THE LAUNCHER AND THE ICON TO THE APPDIR IF THEY NOT EXIST
if test -f ./$APP/$APP.AppDir/*.desktop; then
	echo "The desktop file exists"
else
	echo "Trying to get the .desktop file"
	cp ./$APP/$APP.AppDir/usr/share/applications/*$(ls . | grep -i $APP | cut -c -4)*desktop ./$APP/$APP.AppDir/ 2>/dev/null
fi

ICONNAME=$(cat ./$APP/$APP.AppDir/*desktop | grep "Icon=" | head -1 | cut -c 6-)
#cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/22x22/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
#cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/24x24/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
#cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/32x32/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
#cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/48x48/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
#cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/64x64/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
#cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/128x128/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
#cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/256x256/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
#cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/512x512/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
cp ./$APP/$APP.AppDir/usr/share/icons/hicolor/scalable/apps/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null
#cp ./$APP/$APP.AppDir/usr/share/applications/*$ICONNAME* ./$APP/$APP.AppDir/ 2>/dev/null

# EXPORT THE APP TO AN APPIMAGE
ARCH=x86_64 ./appimagetool -n ./$APP/$APP.AppDir
cd ..
mv ./tmp/*.AppImage ./GNU_Image_Manipulation_Program-DEV-"$VERSION"-x86_64.AppImage 
chmod a+x *.AppImage
