#!/bin/bash REMOTE_URL=$(git remote get-url origin 2>/dev/null || echo "No remote origin found") BRANCH=$(git branch --show-current 2>/dev/null || echo "HEAD") if [ "$REMOTE_URL" = "No remote origin found" ]; then echo "$REMOTE_URL" exit 1 fi # Convert SSH to HTTPS if needed if echo "$REMOTE_URL" | grep -q "^git@"; then REMOTE_URL=$(echo "$REMOTE_URL" | sed 's/^git@\([^:]*\):/https:\/\/\1\//' | sed 's/\.git$//') else REMOTE_URL=$(echo "$REMOTE_URL" | sed 's/\.git$//') fi if [ -z "$1" ]; then echo "$REMOTE_URL/tree/$BRANCH" else # Handle file path if [ -f "$1" ] || [ -d "$1" ]; then REL_PATH=$(git ls-files --full-name "$1" 2>/dev/null || echo "$1") echo "$REMOTE_URL/blob/$BRANCH/$REL_PATH" else echo "File not found: $1" exit 1 fi fi