logo

crate downloads license ci publish

A blazingly fast system fetch program to pair with onefetch


preview

View the complete ascii art collection at punfetch.dev


Installation

Install from crates.io

bash cargo install punfetch

Build from source

bash git clone https://github.com/ozwaldorf/punfetch.git cd punfetch make install

Usage

CLI

```man $ punfetch -h A blazingly fast system fetch program to pair with onefetch.

Usage: punfetch [OPTIONS]

Options: --distro Distribution to search art for (e.g. "Manjaro" or "Ubuntu") -i, --image Image to display in place of the distro art --show-logo Show the logo [default: always] [possible values: always, never, auto] --color-mode Color mode to use [default: hex] [possible values: hex, ansi, none] --color Text color to use. Accepts ansi or hex color codes -h, --help Print help -V, --version Print version ```

Library

Punfetch is also a library to implement your own custom system fetchers! See the docs for more information and examples.

Makefile

Developing on the crate:

make clean # Clean the project make build # Build the project make run # Run the project make install # Install the project make test # Run tests make lint # Run linter make fmt # Run formatter make ci # Precommit CI checks

Developing on punfetch.dev:

make init-pages # Initialize pages make patch-pages # Patch vercel pages make save-pages # Save the diff patch make dev # Run the pages locally

Contributing

This project follows conventional commits

⚠️ Over 200 distributions are already supported, but many do not have colors defined. If your distro is not colored, please open a PR to update it!

Adding a new distribution

New distributions can easily be supported by adding a new entry to the distros.yaml file

yaml "Examplo Linux": regex: "(examplo|examplo_old)" # Optional, regex to match against. Autogenerated if not provided. colors: # Optional, default fg will be used if not specified ansi: - white # The first color is used for the info text # - bright_green # - magenta # - etc, hex: # Optional, ansi colors will be used if not specified - "#ffffff" ascii: | # The ascii art to display! {0} _nnnn_ {0} dGGGGMMb {0} @p~qp~~qMb {0} M|@||@) M| {0} @,----.JM| {0} JS^\__/ qKL {0} dZP qKRb {0} dZP qKKb {0} fZP SMMb {0} HZM MMMM {0} FqM MMMM {0} __| ". |\dS"qML {0} | `. | `' \Zq {0}_) \.___.,| .' {0}\____ )MMMMMP| .' {0} `-' `--'

If there are multiple patterns that could be used to identify the distribution, or the title of the distribution is lengthy, a regex should be provided. Patterns should be simple, lowercase, and A-z, 0-9 only.