Metadata-Version: 2.4
Name: gfyupm
Version: 0.1.1
Summary: Boring universal package manager CLI
Author: Axel
License-Expression: GPL-3.0-only
Project-URL: Homepage, https://github.com/umm-dev/gfyupm
Project-URL: Repository, https://github.com/umm-dev/gfyupm
Project-URL: Issues, https://github.com/umm-dev/gfyupm/issues
Keywords: package-manager,cli,packages,installer
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Software Distribution
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: twine>=6; extra == "dev"
Dynamic: license-file

# gfyupm

Go Fuck Yourself Universal Package Manager. One boring Python CLI over native package managers.

## Install

```bash
python3 -m pip install gfyupm
```

Before PyPI release, install local checkout:

```bash
python3 -m pip install .
```

Developer checks:

```bash
python3 -m pip install ".[dev]"
python3 -m pytest -q
python3 -m build
python3 -m twine check dist/*
```

## Use

```bash
gfyupm install ripgrep
gfyupm remove ripgrep
gfyupm update
gfyupm upgrade
gfyupm search ripgrep
gfyupm --manager npm install typescript
gfyupm --dry-run install ripgrep
gfyupm managers
gfyupm default apt
```

`gfyupm` uses `GFYUPM_MANAGER`, then `~/.config/gfyupm/config.toml`, then available OS-native manager. `--manager` always wins.

System package mutations automatically use `sudo` when needed. Run `gfyupm install cowsay`, not `sudo gfyupm install cowsay`.

V1 supports 75 managers. Run `gfyupm managers` for full live registry and local availability.

Commands remain native. Use native command directly for unsupported manager-specific behavior.

## Release

See [PyPI release guide](docs/PYPI.md). Releases publish through GitHub Actions trusted publishing; no API token lives in repository.
