#!/bin/dash # Variables de entrada (URL del repositorio y hash del commit como argumentos) REPO="${1:-https://gitlab.com/kernel-firmware/linux-firmware.git}" COMMIT_HASH="${2:-20250410}" # Variables de directorio temporal y nombre del archivo final TEMP_DIR=$(mktemp -d /tmp/repo-XXXX) CLONE_DIR="$TEMP_DIR/linux-firmware" ARCHIVE_NAME="linux-firmware.tar.xz" # Borrar archivo tar.xz previo si existe [ -f "$ARCHIVE_NAME" ] && rm -f "$ARCHIVE_NAME" # Borrar carpeta linux-firmware previa si existe en el directorio actual [ -d "linux-firmware" ] && rm -rf "linux-firmware" # Clonar el repositorio en el directorio temporal dentro de la carpeta linux-firmware git clone --depth 1 --branch "$COMMIT_HASH" "$REPO" "$CLONE_DIR" || { echo "Error: No se pudo clonar el repositorio." exit 1 } # Verificar si el repositorio contiene un directorio .git y moverlo (opcional) if true; then if [ -d "$CLONE_DIR/.git" ]; then GIT_DIR="/tmp/git_linux-firmware" mkdir "$GIT_DIR" && mv "$CLONE_DIR/.git" "$GIT_DIR" || exit 1 fi fi # Crear el archivo tar.xz con la carpeta linux-firmware dentro tar -cJvf "$ARCHIVE_NAME" -C "$TEMP_DIR" "linux-firmware" || { echo "Error: No se pudo crear el archivo $ARCHIVE_NAME." exit 1 } # Limpiar el directorio temporal [ -d "$TEMP_DIR" ] && rm -rf "$TEMP_DIR" echo "Archivo creado: $ARCHIVE_NAME"