I wanna create the following. whaddya think? ### The Project Showcase / README *** # DO (do-cli) > **The Swiss Army Knife for the Polyglot Developer.** > Stop configuring. Stop installing. Just **DO**. ![Version](https://img.shields.io/badge/version-0.1.0-blue) ![Language](https://img.shields.io/badge/language-Python%20%7C%20Rust-orange) ![License](https://img.shields.io/badge/license-MIT-green) ### ❓ What is it? **DO** is a unified CLI tool designed to handle the entire lifecycle of a "quick script" or a "side project." It automates the friction points of modern development: missing interpreters, messy directories, and repetitive boilerplate. It detects what you want to do, ensures you have the tools to do it, and cleans up after itself. --- ### ✨ Key Features #### 1. Smart Execution (`run`) Run any file, in any language, without knowing the specific compiler flags. * **Auto-Detection:** Sees `.rs`? Runs `rustc`. Sees `.py`? Runs `python3`. * **Auto-Installation:** Missing `cargo`? **DO** detects your OS (Arch/Debian/Fedora/MacOS) and offers to install it via your system package manager. * **Compilation Cache:** Won't recompile C++/Rust files if the hash hasn't changed. #### 2. The Sandbox (`sandbox`) Need to test a library or try a crazy idea? Don't clutter your `~/Documents` folder. * Creates a **temporary, isolated environment** in `/tmp/`. * Sets up the language stack (Virtualenv, `npm init`, `cargo new`). * **Garbage Collection:** Automatically lists and cleans up abandoned sandboxes. #### 3. Instant Scaffolding (`new`) Create production-ready directory structures in seconds. * Generates a standardized folder structure (Git initialized, `.gitignore` created, entry point file ready). * Supports: Python, Rust, Node.js, C++, and Go. #### 4. The Dashboard (TUI) A beautiful terminal interface built with **Rich** to manage your active environments. --- ### 🚀 Usage Demos #### The "It Just Works" Run You found an old script. You don't have the runtime. ```bash $ do run script.rb [!] Ruby not found. [?] Detect Arch Linux. Install 'ruby' via pacman? [Y/n] Y [+] Installing... Done. [+] Running script.rb... Hello World! ``` #### The Disposable Sandbox You want to test a Python library without breaking your main setup. ```bash $ do sandbox python [+] Created sandbox "lazy-spinach" (ID: 8f2a) [+] Path: /tmp/do_sb_8f2a [+] Virtualenv activated. [+] Shell spawned. Type 'exit' to leave. (lazy-spinach) $ pip install requests (lazy-spinach) $ python main.py ... ``` #### Project Management See what you are working on. ```bash $ do list ID | Name | Type | Stack | Status -------|----------------|----------|--------|------------ a1b2 | api-gateway | Project | Rust | Active 9f3c | lazy-spinach | Sandbox | Python | 🕒 Expires 1h ``` #### Cleanup ```bash $ do rm lazy-spinach [?] Are you sure you want to delete sandbox 'lazy-spinach'? [Y/n] y [+] Nuked /tmp/do_sb_8f2a from orbit. 💥 ``` --- ### 🛠 Architecture * **Core Logic:** Python (Porting to Rust in v1.0) * **CLI Parser:** `Argparse` * **TUI/Formatting:** `Rich` * **State Management:** Local JSON Database (`~/.config/do/state.json`) * **System Interaction:** `Subprocess` & `Shutil` ### 📦 Installation ```bash # Clone and Install git clone https://github.com/UN7X/do-cli.git cd do-cli pip install . # Verify do --version ``` --- ### 📝 To-Do / Roadmap - [ ] Add support for Docker-based sandboxes (True isolation). - [ ] Add "Watch Mode" for hot-reloading compiled languages. - [ ] Implement `do shell ` to re-enter existing sandboxes. - [ ] Rewrite core runner in Rust for <5ms startup time. *** **Maintained by [UN7X](https://github.com/UN7X)**