https://github.com/datarohit/clony
🚀 Clony is a modern Git clone tool with a sleek CLI interface powered by Rich. It provides an intuitive, visually appealing alternative to standard Git clone operations with high test coverage (95%+) and a modular architecture for easy extensibility. Perfect for developers who want a more elegant command-line experience.
https://github.com/datarohit/clony
cli-application command-line developer-tools git-clone git-tools modern-ui open-source python-cli python3 repository-management rich-text terminal-interface
Last synced: 3 months ago
JSON representation
🚀 Clony is a modern Git clone tool with a sleek CLI interface powered by Rich. It provides an intuitive, visually appealing alternative to standard Git clone operations with high test coverage (95%+) and a modular architecture for easy extensibility. Perfect for developers who want a more elegant command-line experience.
- Host: GitHub
- URL: https://github.com/datarohit/clony
- Owner: DataRohit
- License: mit
- Created: 2025-03-14T06:17:15.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-03-14T06:25:59.000Z (3 months ago)
- Last Synced: 2025-03-14T06:29:37.333Z (3 months ago)
- Topics: cli-application, command-line, developer-tools, git-clone, git-tools, modern-ui, open-source, python-cli, python3, repository-management, rich-text, terminal-interface
- Language: Python
- Homepage:
- Size: 0 Bytes
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# Clony
██████╗██╗ ██████╗ ███╗ ██╗██╗ ██╗
██╔════╝██║ ██╔═══██╗████╗ ██║╚██╗ ██╔╝
██║ ██║ ██║ ██║██╔██╗ ██║ ╚████╔╝
██║ ██║ ██║ ██║██║╚██╗██║ ╚██╔╝
╚██████╗███████╗╚██████╔╝██║ ╚████║ ██║
╚═════╝╚══════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═╝**A modern Git clone tool with a cool CLI interface**
## ✨ Features
- 🎨 **Modern and visually appealing CLI interface** powered by Rich
- 🔧 **Git repository management** with initialization and configuration
- 📂 **File staging system** with intelligent error handling
- 🧩 **Modular architecture** for easy extensibility
- 📊 **Complete test coverage** (100%) for reliability
- 🚀 **Simple and intuitive commands** for efficient workflow## 📋 Table of Contents
- [Installation](#-installation)
- [Usage](#-usage)
- [Project Structure](#-project-structure)
- [Development](#-development)
- [License](#-license)## 🔧 Installation
```bash
# Clone the repository
git clone https://github.com/DataRohit/clony.git
cd clony# Set up virtual environment
python -m venv .venv
source .venv/Scripts/activate # Windows
# source .venv/bin/activate # Linux/Mac# Install dependencies
pip install -e .
```## 🚀 Usage
### Available Commands
#### Global Options
The following options are available for all commands:
```bash
--help, -h # Show help information for any command
--version, -v # Display version information
```#### `help`
Display detailed help information about available commands and options.
```bash
# Show general help information with logo
clony help# Show help for a specific command
clony init --help
```#### `init`
Initialize a new Git repository in the specified directory.
```bash
# Basic Usage
clony init [path] # Create a new Git repository# Options
--force, -f # Force reinitialization if repository exists
--help, -h # Show help for init command
```**Examples:**
```bash
# Initialize in current directory
$ clony init
INFO Git repository initialized successfully
INFO Initialized empty Git repository in /current/path# Initialize in a new directory
$ clony init my-project
INFO Git repository initialized successfully
INFO Initialized empty Git repository in /path/to/my-project# Try to initialize in existing repository
$ clony init existing-repo
WARNING Git repository already exists
INFO Use --force to reinitialize# Force reinitialization
$ clony init existing-repo --force
INFO Git repository initialized successfully
INFO Initialized empty Git repository in /path/to/existing-repo# Initialize with invalid path
$ clony init /invalid/path
ERROR Parent directory does not exist: /invalid/path
```#### `stage`
Stage a file by adding its content to the staging area. This command prepares a file to be included in the next commit by creating a blob object from the file content and updating the index.
```bash
# Basic Usage
clony stage # Stage a file for the next commit# Options
--help, -h # Show help for stage command
```**Examples:**
```bash
# Stage a file
$ clony stage myfile.txt
INFO File staged: 'myfile.txt'# Try to stage a non-existent file
$ clony stage non_existent_file.txt
ERROR File not found: 'non_existent_file.txt'# Stage a file in a non-git repository
$ clony stage file_outside_repo.txt
ERROR Not a git repository. Run 'clony init' to create one.# Try to stage a file that's already staged
$ clony stage already_staged.txt
WARNING File already staged: 'already_staged.txt'# Stage a file after changing its content
$ echo "Changed content" > myfile.txt
$ clony stage myfile.txt
INFO File staged: 'myfile.txt'# Stage a file with invalid path
$ clony stage /invalid/path/file.txt
ERROR File not found: '/invalid/path/file.txt'
```## 📁 Project Structure
```
clony/
├── clony/ # Main package
│ ├── __init__.py # Package initialization with version and exports
│ ├── cli.py # Command-line interface
│ ├── core/ # Core functionality
│ │ ├── __init__.py # Core module initialization with exports
│ │ └── repository.py # Repository management
│ ├── internals/ # Internal utilities
│ │ ├── __init__.py # Internals module initialization with exports
│ │ └── staging.py # File staging functionality
│ ├── utils/ # Utility functions
│ │ ├── __init__.py # Utils module initialization with exports
│ │ └── logger.py # Logging configuration
│ ├── remote/ # Remote repository operations (future)
│ │ └── __init__.py # Remote module initialization
│ └── advanced/ # Advanced features (future)
│ └── __init__.py # Advanced module initialization
├── tests/ # Test suite
│ ├── __init__.py # Test package initialization
│ ├── conftest.py # Pytest configuration
│ ├── test_cli.py # CLI tests
│ ├── core/ # Tests for core functionality
│ │ ├── __init__.py # Core tests initialization
│ │ └── test_repository.py # Repository tests
│ ├── internals/ # Tests for internal utilities
│ │ ├── __init__.py # Internals tests initialization
│ │ └── test_staging.py # Staging tests
│ └── utils/ # Tests for utility functions
│ ├── __init__.py # Utils tests initialization
│ └── test_logger.py # Logger tests
├── pyproject.toml # Project configuration
├── readme.md # Project documentation
└── license # License information
```## 💻 Development
Clony is built with a focus on code quality and test coverage:
```bash
# Install development dependencies
pip install -e ".[dev]"# Run tests with coverage
pytest -v# Run linting
ruff check .# Format code
ruff format .
```## 📝 License
This project is licensed under the MIT License - see the [LICENSE](license) file for details.
---
Made with ❤️ by Rohit Vilas Ingole