Metadata-Version: 2.4
Name: carlosferreyra
Version: 1.2.11
Summary: Interactive CLI business card - fast Rust implementation
Author: Carlos Ferreyra
Author-email: Carlos Ferreyra <eduferreyraok@gmail.com>
License-Expression: MIT
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Requires-Python: >=3.12
Project-URL: Repository, https://github.com/carlosferreyra/business-card
Description-Content-Type: text/markdown

# Interactive CLI Business Card

A fast, interactive CLI business card implemented in Rust.

![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
![Rust](https://img.shields.io/badge/Rust-2024-orange.svg)
![uvx](https://img.shields.io/badge/uvx-entrypoint-green.svg)
![bunx](https://img.shields.io/badge/bunx-entrypoint-green.svg)

## 🚀 Quick Start

### Cargo (direct Rust install)

```bash
cargo install carlosferreyra
carlosferreyra
```

### uvx (wrapper entrypoint)

```bash
uvx carlosferreyra
```

### bunx (wrapper entrypoint)

```bash
bunx carlosferreyra
```

## Features

- ⚡ Fast Rust CLI
- 📧 Direct email contact
- 🌐 Portfolio and social links
- 🖥️ Interactive menu
- 🔧 Non-interactive mode via `--open`
- 🎯 Config-driven behavior from a single `config.json`

## Project Structure

```text
business-card/
├── src/                  # Rust source code
│   └── main.rs
├── Cargo.toml            # Rust package manifest
├── Cargo.lock
├── config.json           # Centralized configuration
└── README.md
```

## Configuration

The CLI reads settings from root `config.json`:

- Personal information (name, title, company, location, skills)
- URLs (email, resume, portfolio, github, linkedin, twitter)
- Theme settings

For full configuration details, see [`config.json`](config.json).

## Distribution Model

- **Source code in this repo:** Rust only
- **`uvx carlosferreyra`:** Python ecosystem entrypoint wrapper (generated/published in release
  pipeline)
- **`bunx carlosferreyra`:** Node ecosystem entrypoint wrapper (generated/published in release
  pipeline)

The `uvx` and `bunx` packages are distribution entrypoints, not source implementations in this
repository.

## Release Pipeline

- `Release` workflow (`.github/workflows/release.yml`) is the source of truth.
- It runs `cargo release <patch|minor|major> --execute --no-confirm` and publishes to crates.io.
- It then runs `cargo dist build` using `Cargo.toml` dist settings.
- On successful completion, `release_pypi.yml` and `release_npm.yml` run automatically.
- Those workflows generate Python/npm wrapper package metadata from `Cargo.toml` on the fly (no
  dedicated `python/` or `typescript/` source folders).

## Development

```bash
cargo run
cargo run -- --open portfolio
cargo check
cargo build --release
```

## Connect with Carlos

- **GitHub**: [github.com/carlosferreyra](https://github.com/carlosferreyra)
- **LinkedIn**: [linkedin.com/in/eduferreyraok](https://linkedin.com/in/eduferreyraok)
- **Website**: [carlosferreyra.com.ar](https://carlosferreyra.com.ar)
- **Email**: [eduferreyraok@gmail.com](mailto:eduferreyraok@gmail.com)

## License

MIT

---

## Appendix: Package Index Wrappers

The packages published to PyPI and npm are entrypoint wrappers around the Rust CLI binary.

- `pipx/uvx` package: invokes the Rust `carlosferreyra` executable.
- `npx/bunx` package: invokes the Rust `carlosferreyra` executable.

If the binary is not available, wrappers attempt to bootstrap it from release artifacts generated by
`cargo dist`; if that fails, install directly with:

```bash
cargo install carlosferreyra
```
