Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Publish to PyPI

on:
release:
types: [published]
workflow_dispatch:

permissions:
contents: read
id-token: write

jobs:
build-and-publish:
name: Build & Publish Python Package
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install build tools
run: python -m pip install --upgrade pip build twine

- name: Build distributions
run: python -m build

- name: Verify distribution archives
run: python -m twine check dist/*

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
skip-existing: true

51 changes: 51 additions & 0 deletions .github/workflows/release-binaries.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Release Standalone Binaries

on:
release:
types: [published]
workflow_dispatch:

permissions:
contents: write

jobs:
build-binaries:
name: Build Standalone Binary (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
artifact_name: devsetup-windows-amd64.exe
binary_path: dist/devsetup.exe
- os: ubuntu-latest
artifact_name: devsetup-linux-amd64
binary_path: dist/devsetup
- os: macos-latest
artifact_name: devsetup-macos-universal
binary_path: dist/devsetup

steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install dependencies & PyInstaller
run: |
python -m pip install --upgrade pip pyinstaller
python -m pip install .

- name: Compile standalone binary
run: |
pyinstaller --onefile --name devsetup --clean src/devsetup/cli/main.py

- name: Upload Binary to Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'release'
with:
files: ${{ matrix.binary_path }}

19 changes: 15 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Python bytecode
__pycache__/
*.py[cod]
*$py.class
*.pyd
*.so

Expand All @@ -14,8 +15,12 @@ ENV/
build/
dist/
site/
_build/
*.egg-info/
*.egg
*.whl
*.tar.gz
*.spec

# Test and coverage artifacts
.pytest_cache/
Expand All @@ -26,12 +31,19 @@ site/
coverage.xml
htmlcov/

# Tooling state
# Tooling and lock files
.pre-commit-config.yaml.lock

# Environment variables
.env
.env.*
!.env.example

# OS files
.DS_Store
Thumbs.db
ehthumbs.db
[Dd]esktop.ini

# Editor settings
.idea/
Expand All @@ -41,8 +53,7 @@ Thumbs.db
# Logs
*.log

# Temporary files
# Temporary and backup files
*.tmp
*.swp

docs/
*.bak
148 changes: 147 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,85 @@
# DevSetup
# DevSetup 🐾


DevSetup is a universal, cross-platform CLI for bootstrapping GitHub projects with one command.

[![CI](https://github.com/DEMOCODE675/CloneCode/actions/workflows/ci.yml/badge.svg)](https://github.com/DEMOCODE675/CloneCode/actions/workflows/ci.yml)
[![Python](https://img.shields.io/badge/python-3.12%2B-3776AB?logo=python&logoColor=white)](https://www.python.org/)

**DevSetup** is a cross-platform command-line tool for getting GitHub projects ready to run. Give it a repository URL or a local project directory and it will identify the technology stack, install dependencies, and report project health with clear Rich-powered output.


```text
# ------------------------------------------------------------------------
# ........................................................................
# ......................... /\_____/\ ..........................
# ........................ / /\ /\ \ .........................
# ...................... ( (o) (o) ) '.......................
# ................... \ / .. ( (*) . (*) ) .. \ /...................
# .................. === ... ( .w. ) ... === ...................
# .................. / \ .... \ / .... / \ ...................
# ........................ / | | \ .........................
# ........................ | | | | .........................
# ........................ | ( | | ) | .........................
# ........................ (____( | | )____) .........................
# ........................................................................
# ............[ DevSetup Universal Environment Bootstrapper ].............
# ------------------------------------------------------------------------
```

---

## 🚀 Quick Run (No Clone or Setup Needed!)

You can run `devsetup` immediately in your terminal without cloning or saving any files:

### Run ephemerally (like `npx`):
```bash
# Using uv (fastest):
uvx --from git+https://github.com/DEMOCODE675/CloneCode.git@v2 devsetup

# Or using pipx:
pipx run --spec git+https://github.com/DEMOCODE675/CloneCode.git@v2 devsetup
```

---

## 📦 One-Line Global Install

Install `devsetup` permanently to your system with a single command:

### Windows (PowerShell):
```powershell
irm https://raw.githubusercontent.com/DEMOCODE675/CloneCode/v2/install.ps1 | iex
```

### macOS & Linux:
```bash

curl -fsSL https://raw.githubusercontent.com/DEMOCODE675/CloneCode/v2/install.sh | bash
```

### Via `pipx` or `pip`:
```bash
pipx install git+https://github.com/DEMOCODE675/CloneCode.git@v2
# or
pip install git+https://github.com/DEMOCODE675/CloneCode.git@v2
```

Once installed, just type:
```bash
devsetup
```

---

## 💻 Usage

```bash
devsetup setup https://github.com/user/project

devsetup https://github.com/owner/project

```

## Why DevSetup?
Expand All @@ -27,6 +100,22 @@ Starting an unfamiliar repository usually means figuring out its language, frame

## Supported ecosystems


### Clone only
```bash
devsetup clone https://github.com/user/project
```

### Scan a project
```bash
devsetup scan .
```

### Run diagnostics
```bash
devsetup doctor .
```

DevSetup currently includes plugins for:

**Angular · Astro · Django · Express · FastAPI · Flutter · Go · Java · Laravel · NestJS · Next.js · Node.js · PHP · Python · Rails · React · Remix · Ruby · Rust · Spring · Svelte · Vue**
Expand All @@ -37,7 +126,35 @@ Detection is based on project metadata such as manifests, lock files, source lay

DevSetup is currently installed from a checkout:


### Show mascot cat banner
```bash

devsetup cat
# Or modern card style:
devsetup banner --style card
```

### List installed plugins
```bash
devsetup plugins
```

### Clear cache
```bash
devsetup cache clear
```

### Clean generated files
```bash
devsetup clean
```

### Show version
```bash
devsetup version
```

git clone https://github.com/DEMOCODE675/CloneCode.git
cd CloneCode
python -m pip install -e .
Expand Down Expand Up @@ -69,7 +186,35 @@ devsetup setup https://github.com/owner/project --destination ~/src/project

Passing a repository URL directly performs the same bootstrap flow:


---

## ✨ Highlights

- Python 3.12+
- Typer CLI with Rich output & cute mascot cat terminal splash screen
- Universal one-line installer for Windows, macOS, and Linux
- Plugin-driven architecture
- Automatic package manager and framework detection

---

## 🛠️ Development

To develop locally:

```bash
git clone https://github.com/DEMOCODE675/CloneCode.git
cd CloneCode
pip install -e .[dev]
```

Run checks:
```bash

ruff check src tests
pytest

devsetup https://github.com/owner/project
```

Expand Down Expand Up @@ -126,3 +271,4 @@ Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for local setu
## License

No license file is currently included in this repository. Add a license before distributing DevSetup or accepting external contributions under explicit reuse terms.

Loading
Loading