Wednesday, 5 March 2025

Warp shell

After watching a Youtube by the very respected Dave on a new command line shell called Warp, I gave its go. After describing a task to be done it built the commands needed for that task and executed them. In this case I asked it to "create a page of thumbnails images from a directory of pictures". As it progressed it provided explanations and checked before running any actual commands. The task was achieved by generating a command script incorporating the subtasks to be done.  The script was left behind and can be adapted and deployed in other similar situations.

Very impressive I can see we will have to explore this tool further. As with a lot of AI products Warp gets you sarted in the right direction and breaks the tyrany of the blank page.

Available on Mac, Windows, Linux from Warp.dev


...........



The script created .. Might need to add .png and parameterise a few things before redeployment

#!/bin/bash


# Create thumbnails directory if it doesn't exist

mkdir -p CEP_Thumbnails


# Remove any existing thumbnails to start fresh

rm -f CEP_Thumbnails/*.jpg CEP_Thumbnails/*.jpeg


# Counter for thumbnails

count=0


# Process all JPG and JPEG files

for img in CEP_AllPics/*.jpg CEP_AllPics/*.jpeg CEP_AllPics/*.JPG CEP_AllPics/*.JPEG; do

    # Check if file exists (to handle case when no matches are found)

    if [ -f "$img" ]; then

        # Extract filename without path

        filename=$(basename "$img")

        echo "Creating thumbnail for $filename"

        

        # Create thumbnail using sips

        sips --resampleWidth 150 "$img" --out "CEP_Thumbnails/$filename"

        

        # Increment counter

        ((count++))

    fi

done


echo "Created $count thumbnails"


# Generate HTML file

cat > thumbnails.html << EOF

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Image Thumbnails</title>

    <style>

        body {

            font-family: Arial, sans-serif;

            margin: 20px;

            background-color: #f5f5f5;

        }

        h1 {

            text-align: center;

            color: #333;

        }

        .thumbnail-grid {

            display: grid;

            grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));

            gap: 15px;

            padding: 20px;

        }

        .thumbnail-container {

            background: white;

            box-shadow: 0 2px 5px rgba(0,0,0,0.1);

            padding: 10px;

            border-radius: 5px;

            text-align: center;

            transition: transform 0.3s ease;

        }

        .thumbnail-container:hover {

            transform: scale(1.05);

        }

        .thumbnail-container img {

            max-width: 150px;

            max-height: 150px;

            display: block;

            margin: 0 auto 8px auto;

        }

        .thumbnail-container p {

            margin: 5px 0 0 0;

            font-size: 12px;

            color: #666;

            overflow: hidden;

            text-overflow: ellipsis;

            white-space: nowrap;

        }

        .timestamp {

            text-align: center;

            margin-top: 30px;

            color: #777;

            font-size: 14px;

        }

    </style>

</head>

<body>

    <h1>Image Thumbnails</h1>

    <div class="thumbnail-grid">

EOF


# Add each thumbnail to the HTML

for thumb in CEP_Thumbnails/*.jpg CEP_Thumbnails/*.jpeg CEP_Thumbnails/*.JPG CEP_Thumbnails/*.JPEG; do

    if [ -f "$thumb" ]; then

        filename=$(basename "$thumb")

        echo "        <div class=\"thumbnail-container\">" >> thumbnails.html

        echo "            <a href=\"CEP_AllPics/$filename\" target=\"_blank\">" >> thumbnails.html

        echo "                <img src=\"$thumb\" alt=\"$filename\">" >> thumbnails.html

        echo "                <p>$filename</p>" >> thumbnails.html

        echo "            </a>" >> thumbnails.html

        echo "        </div>" >> thumbnails.html

    fi

done


# Close the HTML file

cat >> thumbnails.html << EOF

    </div>

    <div class="timestamp">

        Generated on $(date)

    </div>

</body>

</html>

EOF


echo "HTML gallery created: thumbnails.html"

echo "Open this file in your web browser to view the thumbnails."


# Make the script executable

chmod +x create_thumbnails.sh


No comments: