🐎 Just a simple cross-platform neofetch for all the bronies out there.

Overview

⚠️ (WIP) This project is not ready for any serious use right now.

A cross-platform command-line interface (CLI) tool written in Rust
to display system information in an aesthetically pleasing and entertaining manner.

📜 Table of contents

Demo

Ponyfetch provides an aesthetically pleasing, colorful display of important system information, complete with charming ponies.

demo

🔧 Using

Example:

ponyfetch -c=blue -p=rainbowdash_large
Option Description Type Default Required?
-c or --color Defines what color to print pony and titles in String blue No
-p or --pony Pony to print String rainbowdash No
-h or --help Help menu in case you don't understand this one No

🧪 Requirements for install

On Linux (MAC not tested), install net-tools package using

sudo apt-get install net-tools

or

sudo pacman -S net-tools

Installing

There are multiple possible ways to install Ponyfetch, however, there is still a way to compile it yourself. If you want, please proceed with reading Compiling section.

📦 with Cargo

cargo install ponyfetch

📦 Manually

To install the latest version of PonyFetch, first visit the available release here and download the executable. For Linux, move the binary to the /usr/bin directory. For Windows, move the binary to any desired path and add it to your system's PATH environment variable.

📚 Contributing

🐎 Adding new ponies

If you wish to add new ponies to the project, please adhere to the following guidelines in order to maintain the project's structural integrity and functionality. The two main distinguishing features of these ponies are their size and style (e.g. Hat or Wings). Refer to the current pony ASCII art to determine the size of your new pony. If your pony is larger than the others, use the format <ponyname>_large. If the size is the same as an existing pony, find a visible difference between your pony and the current one, and name it <ponyname>_<difference>_large. If you are still unsure, please open an issue to discuss it with members of our team. Additionally, after adding a new pony, please ensure to credit the author in the "Sources" section of the README.

🖥️ Modifying & Adding code

Ponyfetch is still under development, so it is likely that there are bugs present. If you encounter one, please open an issue and discuss it with us. Once the discussion is completed, submit a pull request with the proposed changes.

⛓️ Sources

  1. PYTHON, Clive. In: ASCIIMAN [online]. [cit. 2022-12-02]. Available from: https://asciiman.neocities.org/MLP.html
  2. My Little Pony ASCII Art. [online]. [cited 2022-12-02]. Available from: https://emojicombos.com/my-little-pony-ascii-art
You might also like...
A simple cross-platform easy to use STL Viewer with GUI and CLI options
A simple cross-platform easy to use STL Viewer with GUI and CLI options

Stlvi STL viewer written in Rust. This project is still in development. It is available in both CLI and GUI mode. Supported OS Linux Windows Mac Scree

Simple, cross-platform GameMaker lib for getting file metadata

File Metadata Tiny baby library for getting file metadata. Originally written to work for a GameMaker game a friend is creating. Table of Contents Ins

A simple cli tool for generating quotes in your terminal from Kanye west. Start the day out strong.
A simple cli tool for generating quotes in your terminal from Kanye west. Start the day out strong.

Kanyey A simple cli tool for generating quotes in your terminal from Kanye West. Install Just do cargo install kanyey and be blessed. Bonus: throw it

A super simple prompt for Fish shell, just shows git info and Vi mode.
A super simple prompt for Fish shell, just shows git info and Vi mode.

vifi is a portmandeau of 'Vi' and 'Fish', because it's a prompt for Fish shell, primarily focused around showing proper indicators when using Vi key bindings.

Just a simple object renderer, written in under 500 lines using Rust.
Just a simple object renderer, written in under 500 lines using Rust.

All cargoes that the project runs are: bitflags: a crate for defining bitflag types cfg-if: a small macro crate for defining cfg-based - conditional c

excss is a small, simple, zero-runtime CSS-in-JS library with just two APIs.

excss excss is a small, simple, zero-runtime CSS-in-JS library with just two APIs.

Cross-platform Rust library for coloring and formatting terminal output
Cross-platform Rust library for coloring and formatting terminal output

Coloring terminal output Documentation term-painter is a cross-platform (i.e. also non-ANSI terminals) Rust library for coloring and formatting termin

Cross platform terminal library rust
Cross platform terminal library rust

Cross-platform Terminal Manipulation Library Crossterm is a pure-rust, terminal manipulation library that makes it possible to write cross-platform te

A cross platform minimalistic text user interface
A cross platform minimalistic text user interface

titik Titik is a crossplatform TUI widget library with the goal of being able to interact intuitively on these widgets. It uses crossterm as the under

Comments
  • Argument parsing broken

    Argument parsing broken

    No option except --help seems to work

    $ ./ponyfetch  -c red
    Error: Invalid argument provided.
    Usage: ponyfetch [OPTION]...
    Try 'ponyfetch --help' for more information.
    $ ./ponyfetch  --color red
    Error: Invalid argument provided.
    Usage: ponyfetch [OPTION]...
    Try 'ponyfetch --help' for more information.
    $ ./ponyfetch  --color "red"
    Error: Invalid argument provided.
    Usage: ponyfetch [OPTION]...
    Try 'ponyfetch --help' for more information.
    $ ./ponyfetch  --pony "luna_large.txt"
    Error: Invalid argument provided.
    Usage: ponyfetch [OPTION]...
    Try 'ponyfetch --help' for more information.
    $ ./ponyfetch  --pony "luna_large"
    Error: Invalid argument provided.
    Usage: ponyfetch [OPTION]...
    Try 'ponyfetch --help' for more information.
    $ ./ponyfetch  --pony luna_large
    Error: Invalid argument provided.
    Usage: ponyfetch [OPTION]...
    Try 'ponyfetch --help' for more information.
    $ ./ponyfetch  -p luna_large
    

    This also results in inability to display other ponies

    documentation enhancement 
    opened by qespr 1
  • Derpy is too Derped

    Derpy is too Derped

    Derpy has derped entire face instead of just eyes. derpyDerped Tested in:

    • Gnome Terminal
    • Terminology
    • cool-retro-term
    • Linux Console
    • xterm
    • uxterm
    • Emacs v-term
    • Emacs eshell
    • Emacs ansi-term

    This does not happen when downloading the file and then cating it directly

    opened by qespr 0
Releases(releases)
Owner
Jakub
As an aspiring Rust & Typescript developer with a keen enthusiasm for cybersecurity, I am delighted to present myself and humbly seek to contribute to the field
Jakub
A simple CLI I made while practicing rust to easily make QR codes with just one command, all in your terminal.

Welcome to rust-qrcode-cli ?? A CLI I made while practicing rust to easily make QR codes with just one command, all in your terminal. Install git clon

Dhravya Shah 2 Mar 2, 2022
Write Cross-platform application with React-like decralative UI framework and scalable ECS architecture all in Rust.

bevy_dioxus Dioxus Plugin for Bevy Write Cross-platform application with React-like decralative UI framework and scalable ECS architecture all in Rust

Junichi Sugiura 269 Dec 29, 2022
Assure that your tests are there, and well written.

cargo-is-tested [ ???? ] El libro contiene instrucciones e información detallada en Español. cargo-is-tested is a way to check which of your items are

Alex ✨ Cosmic Princess ✨ 15 Jan 8, 2023
Crash recovery for Darktide. There's heresy to be smote and no time to waste.

Darktide Rebooter ?? ↪️ ?? Automatically boot the game up again (and bypass the launcher) immediately after a crash. There's heresy to be smote and no

Ron Au 3 Apr 12, 2023
Utility for barcoderdev/unitypackage_godot, submit issues there.

unitypackage_util Requires barcoderdev/FBX2glTF to extract FBX in GLTF(glb) format. Place the binary in the same folder, or in PATH. Usage: unitypacka

Barcoder 4 May 25, 2023
Rust low-level minimalist APNG writer and PNG reader with just a few dependencies with all possible formats coverage (including HDR).

project Wiki https://github.com/js29a/micro_png/wiki at glance use micro_png::*; fn main() { // load an image let image = read_png("tmp/test.

jacek SQ6KBQ 8 Aug 30, 2023
ddi is a wrapper for dd. It takes all the same arguments, and all it really does is call dd in the background

ddi A safer dd Introduction If you ever used dd, the GNU coreutil that lets you copy data from one file to another, then you may have encountered a ty

Tomás Ralph 80 Sep 8, 2022
Scan the symbols of all ELF binaries in all Arch Linux packages for usage of malloc_usable_size

Scan the symbols of all ELF binaries in all Arch Linux packages for usage of malloc_usable_size (-D_FORTIFY_SOURCE=3 compatibility)

null 3 Sep 9, 2023
Simple macros to write colored and formatted text to a terminal. Based on `termcolor`, thus also cross-platform.

Bunt: simple macro-based terminal colors and styles bunt offers macros to easily print colored and formatted text to a terminal. It is just a convenie

Lukas Kalbertodt 202 Dec 22, 2022
A simple yet convenient cross-platform ARP spoofer

ruuf - A simple yet convenient cross-platform ARP spoofer Poison the ARP cache of the given victim, thereby redirecting the traffic to the target ther

null 6 Feb 19, 2023