#!/bin/sh

# Время старта скрипта (в секундах с начала эпохи)
start_time=$(date +%s)

# Временная метка для уникального имени лог-файла
timestamp=$(date +"%Y%m%d_%H%M%S")
# Путь к лог-файлу
log_file="/tmp/ec_udpkg_$timestamp.log"

# Функция для вывода в консоль и запись в лог-файл
log() {
    echo "$1"
    echo "$1" >> "$log_file"
}

# Начало логирования
log "==================================================================="
log "========== Preseed Partman EC ec_udpkg script. Version 1 =========="
log "==================================================================="

# URL репозитория с пакетами
repo_url="http://repo.redtux.su/repos/astra/frozen/1-7-x86-64/1-7-5/repository-base/pool/main/"

# Создание директории для хранения пакетов
log "Creating directory /pkgs for package storage..."
if mkdir -p /pkgs; then
    log "Directory /pkgs created successfully"
else
    log "ERROR: Failed to create directory /pkgs"
fi

# Загрузка пакетов
log "Starting package download..."
for package in \
    "e/efivar/libefivar1_37-2+deb10u1_amd64.deb /pkgs/libefivar.deb" \
    "e/efivar/libefiboot1_37-2+deb10u1_amd64.deb /pkgs/libefiboot.deb" \
    "e/efibootmgr/efibootmgr_15-1_amd64.deb /pkgs/efibootmgr.deb"
do
    src=$(echo $package | cut -d' ' -f1)
    dst=$(echo $package | cut -d' ' -f2)
    log "Downloading $src..."
    if wget "${repo_url}${src}" -O "$dst"; then
        log "Package $dst downloaded successfully"
    else
        log "ERROR: Failed to download package $src"
        exit 1
    fi
done

# Установка пакетов
log "Starting package installation..."
for deb in /pkgs/*.deb; do
    if [ -f "$deb" ]; then
        log "Installing package $deb..."
        if udpkg -i "$deb"; then
            log "Package $deb installed successfully"
        else
            log "ERROR: Failed to install package $deb"
        fi
    else
        log "WARNING: No packages found for installation"
    fi
done

# Расчет и логирование времени выполнения
end_time=$(date +%s)
execution_time=$((end_time - start_time))
log "Script completed. Execution time: $execution_time seconds"
log "==================================================================="

