#!/bin/bash

modul="$1"
typ="$2"

case "${typ}" in
    debian)
        prefix="/usr"
        depends="python3 python3-venv python3-pip"
        site="/lib/python3/dist-packages" ;;
    termux)
        prefix="/data/data/com.termux/files/usr"
        depends="python python-pip"
        site="/lib/python3.11/site-packages" ;;
    *)
        echo "[*] Invalid Distribution"
        exit 1 ;;
esac

target="${prefix}${site}"
build_target="${target}/${modul}"

# Create a virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install the module in the virtual environment
pip install --no-cache-dir "${modul}"

# Gather package information
name=$(pip show "${modul}" | grep "^Name: " | awk '{print $2}')
version=$(pip show "${modul}" | grep "^Version: " | awk '{print $2}')
description=$(pip show "${modul}" | grep "^Summary: " | sed 's/^Summary: //')
maintainer=$(pip show "${modul}" | grep "^Author: " | sed 's/^Author: //')
email=$(pip show "${modul}" | grep "^Author-email: " | sed 's/^Author-email: //')

# Prepare the build directory
mkdir -p "${build_target}"
pip install --no-cache-dir "${modul}" --target "${build_target}"

# Create the DEBIAN control file
debian="${modul}/DEBIAN"
mkdir -p "${debian}"
control="${debian}/control"

cat <<EOF > "${control}"
Package: ${name}
Version: ${version}
Section: utils
Architecture: $(dpkg --print-architecture)
Priority: important
Depends: ${depends}
Maintainer: ${maintainer} <${email}>
Description: ${description}
EOF

# Set permissions for the DEBIAN directory
chmod 755 "${debian}"

# Build the .deb package
dpkg-deb --build "${modul}"

# Clean up
deactivate
rm -rf .venv
mv "${modul}.deb" "pacspedd-python3-${modul}_${version}_$(dpkg --print-architecture).deb"
rm -rf "${modul}"

echo "[*] Built pip module: ${modul} as package, successfully"

