summaryrefslogtreecommitdiff
path: root/linux-firmware-blob/OBTAIN.SH
blob: 6c9b53b9a9855ca14be02d6d42919d8d7035e0c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/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:-3981e21e654e3c139c7ca143a0119706b0e7f963}"

# Variables de directorio temporal y nombre del archivo final
TEMP_DIR=$(mktemp -d /tmp/repo-XXXX)
ARCHIVE_NAME="repo-$(basename "$TEMP_DIR").tar.xz"

# Clonar el repositorio en el directorio temporal
git clone "$REPO" "$TEMP_DIR" || {
    echo "Error: No se pudo clonar el repositorio."
    exit 1
}

# Cambiar al directorio clonado
cd "$TEMP_DIR" || exit 1

# Cambiar al commit especificado
git checkout "$COMMIT_HASH" || {
    echo "Error: No se pudo cambiar al commit $COMMIT_HASH."
    exit 1
}

# Verificar si el repositorio contiene un directorio .git y moverlo
if false; then
    if [ -d .git ]; then
	GIT_DIR="/tmp/git_$(basename "$TEMP_DIR")"
	mkdir "$GIT_DIR" && mv .git "$GIT_DIR" || exit 1
    fi
fi
# Volver al directorio anterior y crear el archivo tar.xz
cd - > /dev/null || exit 1
tar -cJvf "$ARCHIVE_NAME" -C "$(dirname "$TEMP_DIR")" "$(basename "$TEMP_DIR")" || {
    echo "Error: No se pudo crear el archivo $ARCHIVE_NAME."
    exit 1
}

# Limpiar el directorio temporal
rm -rf "$TEMP_DIR"
echo "Archivo creado: $ARCHIVE_NAME"