130 lines
2.4 KiB
Bash
Executable File
130 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Download automotive make logos from vehapi.com
|
|
# Usage: ./scripts/download-make-logos.sh
|
|
|
|
set -e
|
|
|
|
# Output directory
|
|
OUTPUT_DIR="frontend/public/images/makes"
|
|
mkdir -p "$OUTPUT_DIR"
|
|
|
|
# Base URL
|
|
BASE_URL="https://vehapi.com/img/car-logos"
|
|
|
|
# List of common automotive makes
|
|
# Format: "output_filename:url_name" (if same, just use the name)
|
|
# vehapi uses underscores for multi-word makes: alfa_romeo, aston_martin, etc.
|
|
MAKES=(
|
|
"acura"
|
|
"alfa-romeo:alfa_romeo"
|
|
"aston-martin:aston_martin"
|
|
"audi"
|
|
"bentley"
|
|
"bmw"
|
|
"buick"
|
|
"cadillac"
|
|
"chevrolet"
|
|
"chrysler"
|
|
"dodge"
|
|
"ferrari"
|
|
"fiat"
|
|
"ford"
|
|
"genesis"
|
|
"gmc"
|
|
"honda"
|
|
"hummer"
|
|
"hyundai"
|
|
"infiniti"
|
|
"isuzu"
|
|
"jaguar"
|
|
"jeep"
|
|
"kia"
|
|
"lamborghini"
|
|
"land-rover:land_rover"
|
|
"lexus"
|
|
"lincoln"
|
|
"lotus"
|
|
"maserati"
|
|
"mazda"
|
|
"mercedes-benz:mercedes_benz"
|
|
"mercury"
|
|
"mini"
|
|
"mitsubishi"
|
|
"nissan"
|
|
"oldsmobile"
|
|
"plymouth"
|
|
"polestar"
|
|
"pontiac"
|
|
"porsche"
|
|
"ram"
|
|
"rivian"
|
|
"rolls-royce:rolls_royce"
|
|
"saab"
|
|
"scion"
|
|
"smart"
|
|
"subaru"
|
|
"tesla"
|
|
"toyota"
|
|
"volkswagen"
|
|
"volvo"
|
|
)
|
|
|
|
echo "Downloading make logos to $OUTPUT_DIR..."
|
|
echo ""
|
|
|
|
SUCCESS_COUNT=0
|
|
FAIL_COUNT=0
|
|
FAILED_MAKES=()
|
|
|
|
for entry in "${MAKES[@]}"; do
|
|
# Parse entry - format is "output_name:url_name" or just "name"
|
|
if [[ "$entry" == *":"* ]]; then
|
|
OUTPUT_NAME="${entry%%:*}"
|
|
URL_NAME="${entry##*:}"
|
|
else
|
|
OUTPUT_NAME="$entry"
|
|
URL_NAME="$entry"
|
|
fi
|
|
|
|
OUTPUT_FILE="$OUTPUT_DIR/$OUTPUT_NAME.png"
|
|
URL="$BASE_URL/$URL_NAME.png"
|
|
|
|
echo -n "Downloading $OUTPUT_NAME... "
|
|
|
|
# Use curl with -f to fail on HTTP errors, -s for silent, -o for output
|
|
if curl -fsSL "$URL" -o "$OUTPUT_FILE" 2>/dev/null; then
|
|
# Verify it's actually an image (check for PNG magic bytes)
|
|
if file "$OUTPUT_FILE" | grep -q "PNG image"; then
|
|
echo "OK"
|
|
((SUCCESS_COUNT++))
|
|
else
|
|
echo "FAILED (not a valid PNG)"
|
|
rm -f "$OUTPUT_FILE"
|
|
((FAIL_COUNT++))
|
|
FAILED_MAKES+=("$OUTPUT_NAME")
|
|
fi
|
|
else
|
|
echo "FAILED (HTTP error)"
|
|
rm -f "$OUTPUT_FILE"
|
|
((FAIL_COUNT++))
|
|
FAILED_MAKES+=("$OUTPUT_NAME")
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "================================"
|
|
echo "Download complete!"
|
|
echo "Success: $SUCCESS_COUNT"
|
|
echo "Failed: $FAIL_COUNT"
|
|
|
|
if [ ${#FAILED_MAKES[@]} -gt 0 ]; then
|
|
echo ""
|
|
echo "Failed makes:"
|
|
for make in "${FAILED_MAKES[@]}"; do
|
|
echo " - $make"
|
|
done
|
|
fi
|
|
|
|
echo ""
|
|
echo "Logos saved to: $OUTPUT_DIR"
|