#!/bin/bash

set -e

do_pre_regen() {
    pending_dir=$1

    mkdir --parents "${pending_dir}/etc/apt/preferences.d"

    # Add sury
    mkdir -p ${pending_dir}/etc/apt/sources.list.d/
    echo "deb https://packages.sury.org/php/ $(lsb_release --codename --short) main" > "${pending_dir}/etc/apt/sources.list.d/extra_php_version.list"

    # Ban some packages from sury
    echo "
Package: php-common
Pin: origin \"packages.sury.org\"
Pin-Priority: 500" >>"${pending_dir}/etc/apt/preferences.d/extra_php_version"

    packages_to_refuse_from_sury="php php-* openssl libssl1.1 libssl-dev"
    for package in $packages_to_refuse_from_sury; do
        echo "
Package: $package
Pin: origin \"packages.sury.org\" 
Pin-Priority: -1" >>"${pending_dir}/etc/apt/preferences.d/extra_php_version"
    done

    echo "

# PLEASE READ THIS WARNING AND DON'T EDIT THIS FILE

# You are probably reading this file because you tried to install apache2 or 
# bind9. These 2 packages conflict with YunoHost.

# Installing apache2 will break nginx and break the entire YunoHost ecosystem
# on your server, therefore don't remove those lines! 

# You have been warned.

Package: apache2
Pin: release *
Pin-Priority: -1

Package: apache2-bin
Pin: release *
Pin-Priority: -1

# Also bind9 will conflict with dnsmasq.
# Same story as for apache2.
# Don't install it, don't remove those lines.

Package: bind9
Pin: release *
Pin-Priority: -1
" >>"${pending_dir}/etc/apt/preferences.d/ban_packages"


}

do_post_regen() {
    regen_conf_files=$1

    # Add sury key
    # We do this only at the post regen and if the key doesn't already exists, because we don't want the regenconf to fuck everything up if the regenconf runs while the network is down
    if [[ ! -s /etc/apt/trusted.gpg.d/extra_php_version.gpg ]]
    then
        wget --timeout 900 --quiet "https://packages.sury.org/php/apt.gpg" --output-document=- | gpg --dearmor >"/etc/apt/trusted.gpg.d/extra_php_version.gpg"
    fi

    # Make sure php7.4 is the default version when using php in cli
    update-alternatives --set php /usr/bin/php7.4
}

do_$1_regen ${@:2}
