#!/bin/bash

# ======================================================================
# Archivo:       currentlist
# Ruta:          /usr/local/bin/
# Autor:         Charlie Martínez® <cmartinez@quirinux.org>
# Licencia:      https://www.gnu.org/licenses/gpl-2.0.txt
# Propósito:     Genera lista de paquetes instalados en el sistema.
# Distribución:  Quirinux 2.x
# ======================================================================

#
# Copyright (c) 2019-2025 Charlie Martínez, derechos reservados.
# Licencia: https://www.gnu.org/licenses/gpl-2.0.txt
# Usos autorizados y no autorizados de la marca Quirinux:
# Ver https://www.quirinux.org/aviso-legal
#

# Detect distro name
if [ -f /etc/os-release ]; then
    DISTRO=$(grep ^ID= /etc/os-release | cut -d= -f2 | tr -d '"')
    VERSION=$(grep ^VERSION_CODENAME= /etc/os-release | cut -d= -f2 | tr -d '"')
    DISTRO_NAME="${DISTRO}_${VERSION}"
else
    DISTRO_NAME="unknown_$(date +%Y%m%d)"
fi

OUTPUT_FILE="${DISTRO_NAME}-packages.list"

echo "Generating package list for $DISTRO_NAME..."

# Generate list in YAML format (one package per line with dash prefix)
dpkg-query -W -f='${Package}\n' | sort | while read pkg; do
    echo "    - $pkg"
done > "$OUTPUT_FILE"

PACKAGE_COUNT=$(wc -l < "$OUTPUT_FILE")

echo "  Package list generated: $OUTPUT_FILE"
echo "   Total packages: $PACKAGE_COUNT"
echo ""
echo "First 10 packages:"
head -10 "$OUTPUT_FILE"
echo "..."
