From d046aca1af3f23ab515f1c43ff6ab421deed2f45 Mon Sep 17 00:00:00 2001 From: d3v1l0n Date: Fri, 3 Jan 2025 08:27:13 +0530 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20mirror=20extra=20is=20liv?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.sh | 81 +++++++++++++++++++++++++++++++++++++++++++++ src/services/api.ts | 18 +++++++--- 2 files changed, 95 insertions(+), 4 deletions(-) create mode 100755 config.sh diff --git a/config.sh b/config.sh new file mode 100755 index 0000000..61f9e33 --- /dev/null +++ b/config.sh @@ -0,0 +1,81 @@ +#!/bin/bash + +# Author: Eshan Roy +# Author URI: https://eshanized.github.io + +set -e + +# Function to display usage instructions +usage() { + cat <] [--username ] [-h] + +Options: + --email Set the GitHub user email. + --username Set the GitHub username. + -h, --help Display this help message. + +Description: + This script configures your GitHub user.email and user.name settings globally. + If no arguments are provided, it will prompt for input interactively. + +Examples: + ${0##*/} --email user@example.com --username "Eshan Roy" +EOF + exit 1 +} + +# Parse command-line arguments +while [[ "$#" -gt 0 ]]; do + case "$1" in + --email) + EMAIL="$2" + shift 2 + ;; + --username) + USERNAME="$2" + shift 2 + ;; + -h|--help) + usage + ;; + *) + echo "Unknown argument: $1" + usage + ;; + esac +done + +# Prompt for email if not provided +if [[ -z "${EMAIL:-}" ]]; then + read -p "Enter your GitHub Email: " EMAIL +fi + +# Prompt for username if not provided +if [[ -z "${USERNAME:-}" ]]; then + read -p "Enter your GitHub Username: " USERNAME +fi + +# Validate email format +if ! [[ "$EMAIL" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]]; then + echo "Error: Invalid email format: $EMAIL" + exit 1 +fi + +# Validate username (allowing alphanumerics, dashes, underscores, and dots) +if ! [[ "$USERNAME" =~ ^[a-zA-Z0-9._-]+$ ]]; then + echo "Error: Invalid username format: $USERNAME" + exit 1 +fi + +# Configure GitHub global settings +git config --global user.email "$EMAIL" +git config --global user.name "$USERNAME" + +# Display success message +echo -e "\033[1;32mGitHub configuration setup successful!\033[0m" +echo " User Email: $EMAIL" +echo " Username: $USERNAME" +echo -e "\033[1;36mYou can verify this configuration using the following commands:\033[0m" +echo " git config --global user.email" +echo " git config --global user.name" \ No newline at end of file diff --git a/src/services/api.ts b/src/services/api.ts index 4d33b2d..03e9a12 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -24,13 +24,23 @@ async function fetchFromMirror(url: string): Promise { } export async function fetchPackages(): Promise { + let packages: Package[] = []; + + // Try each mirror and accumulate results for (const mirror of MIRRORS) { try { - return await fetchFromMirror(mirror); + const result = await fetchFromMirror(mirror); + packages = packages.concat(result); // Append to packages array } catch (error) { console.warn(`Failed to fetch from mirror ${mirror}:`, error); - continue; + continue; // Continue to the next mirror if this one fails } } - throw new Error('All mirrors failed to respond'); -} \ No newline at end of file + + // If no successful fetch, throw an error + if (packages.length === 0) { + throw new Error('All mirrors failed to respond'); + } + + return packages; +}