πŸ“Œ Title: Clone Any GitHub Repo with 1 Click – FuzzuTech Python GUI App

 Demo :


Click Video πŸ‘‡πŸ‘‡πŸ‘‡





























Description: Clone GitHub repos with a single click using this powerful Python GUI app by FuzzuTech. Offline, fast, and hacker-style interface!


πŸ” Features:

  • Clone GitHub repos offline

  • Threaded GUI operations

  • tkinter + customtkinter interface

  • Dark mode GUI

  • Python subprocess integration


Code :


import tkinter as tk

import customtkinter as ctk

from tkinter import messagebox

import subprocess

import os

import threading


# === Configure CTk Appearance ===

ctk.set_appearance_mode("Dark")

ctk.set_default_color_theme("blue")


# === Create Main Window ===

app = ctk.CTk()

app.title("GitHub Repo Downloader")

app.geometry("500x350")

app.resizable(False, False)


# === Function to Clone GitHub Repo (in separate thread) ===

def clone_repo():

    repo_url = url_entry.get()

    download_path = path_entry.get()


    if not repo_url.strip() or not download_path.strip():

        messagebox.showwarning("Input Error", "Please fill in all fields.")

        return


    # Show Preloader

    preloader_label.configure(text="⏳ Processing... Please wait")

    download_button.configure(state="disabled")


    def do_clone():

        try:

            os.makedirs(download_path, exist_ok=True)

            subprocess.run(["git", "clone", repo_url], cwd=download_path, check=True)

            preloader_label.configure(text="")

            messagebox.showinfo("Success", "Repository cloned successfully!")

        except subprocess.CalledProcessError:

            preloader_label.configure(text="")

            messagebox.showerror("Git Error", "Failed to clone repository. Check the URL.")

        except Exception as e:

            preloader_label.configure(text="")

            messagebox.showerror("Error", str(e))

        finally:

            download_button.configure(state="normal")


    threading.Thread(target=do_clone).start()


# === UI Components ===

title_label = ctk.CTkLabel(app, text="GitHub Repo Downloader", font=ctk.CTkFont(size=22, weight="bold"))

title_label.pack(pady=(20, 10))


url_label = ctk.CTkLabel(app, text="Enter GitHub Repo URL:")

url_label.pack(anchor="w", padx=40, pady=(10, 0))


url_entry = ctk.CTkEntry(app, placeholder_text="https://github.com/username/repo", width=400)

url_entry.pack(pady=5)


path_label = ctk.CTkLabel(app, text="Enter Download Folder Path:")

path_label.pack(anchor="w", padx=40, pady=(10, 0))


path_entry = ctk.CTkEntry(app, placeholder_text="C:/Users/YourName/Downloads", width=400)

path_entry.pack(pady=5)


download_button = ctk.CTkButton(app, text="Download Repository", command=clone_repo)

download_button.pack(pady=20)


# πŸ” Preloader Label (Hidden Initially)

preloader_label = ctk.CTkLabel(app, text="", font=ctk.CTkFont(size=14, slant="italic"))

preloader_label.pack()


footer = ctk.CTkLabel(app, text="Developed by FuzzuTech", font=ctk.CTkFont(size=12))

footer.pack(side="bottom", pady=10)


# === Run the App ===

app.mainloop()

Comments

Popular posts from this blog

πŸš€ Simple Login & Registration System in Python Tkinter πŸ“±

πŸ”₯ Advanced MP3 Music Player in Python | CustomTkinter + Pygame | Free Source Code

πŸš€ Create a Python Screen Recorder with Audio (Complete Code)