A system fetch tool for Linux, written in Rust.

Related tags

Command-line fetchit
Overview

fetchit

A system fetch tool for Linux, written in Rust.

fetchit is a simple system info tool, written in Rust, for Linux based operating systems. It offers a few customization options, which are demonstrated in the screenshots below,

  • You can change the colors for the top and bottom part of the ascii art, as well as the color for the bounding box.
  • The path to a custom ascii text file can be passed to fetchit using the -f option.

For a custom ascii text file, it is recommended that the ascii art should be contained in a box of 10x28, i.e. 28 spaces wide, and 10 lines in height. If this condition is not met (especially, the height, i.e. the number of lines) then fetchit will fall back to the default ascii asrt. See Usage for more details.

Examples

 


 



Installation

You can install fetchit using any of the following methods,

Arch Linux

fetchit is available in the AUR. If you have an AUR helper (for example paru),

$ paru -S fetchit-git

Or alternatively,

# Clone the AUR Package.
$ git clone https://aur.archlinux.org/fetchit-git.git

# Change directory into the repo.
$ cd fetchit-git

# Install it, using `makepkg`.
$ makepkg -si

Install from Releases

Head over to Releases to grab a binary for fetchit. Once downloaded,

# Navigate to the directory where you have downloaded the tar file.
$ tar -xvf fetchit-0.1.1-x86_64.tar.gz

# Copy the executable to `~/.local/bin/`, and if this directory doesn't exist create it.
$ if [[ ! -d ~/.local/bin ]] ; then mkdir -p ~/.local/bin/ ; fi
$ cp ./fetchit ~/.local/bin/

Finally, make sure, you add ~/.local/bin/ to PATH, if you haven't already.

Building from Source

# First of all install Rust, see "https://www.rust-lang.org/tools/install".
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clone the git repo.
$ git clone https://github.com/Ruturajn/fetchit.git

# Change directory into the repo.
$ cd ./fetchit

# Build the package.
$ cargo build --release

# Create ~/.cargo/bin/ if it does not exist.
$ if [[ ! -d ~/.cargo/bin ]] ; then mkdir -p ~/.cargo/bin/ ; fi

# Copy the executable to `~/.cargo/bin/`.
$ cp ./target/release/fetchit ~/.cargo/bin/

Note: Please feel free to open Issues and Pull requests, if you feel something is out of order, or if you are facing any problems.


Usage

fetchit 0.1.1
Ruturajn <[email protected]>
A System fetch tool for Linux written in Rust

USAGE:
    fetchit [OPTIONS]

OPTIONS:
    -b, --bottom-color <BOTTOM_COLOR>
            Color for the bottom part of the ascii art : black, red, yellow, blue, magenta, cyan,
            white, green

    -f, --file-path <FILE_PATH>
            File path for the ascii text file

    -h, --help
            Print help information

    -o, --outer-box-color <OUTER_BOX_COLOR>
            Color for the box : black, red, yellow, blue, magenta, cyan, white, green

    -t, --top-color <TOP_COLOR>
            Color for the top part of the ascii art : black, red, yellow, blue, magenta, cyan,
            white, green

    -V, --version
            Print version information

References

You might also like...
An interruption-free notification system for Linux

nofi A Rofi-driven notification manager rofi.mp4 nofi is a distraction-free notification center. While most notification daemons make immediate popups

A library that allows for the arbitrary inspection and manipulation of the memory and code of a process on a Linux system.
A library that allows for the arbitrary inspection and manipulation of the memory and code of a process on a Linux system.

raminspect raminspect is a crate that allows for the inspection and manipulation of the memory and code of a running process on a Linux system. It pro

 Cover your tracks during Linux Exploitation by leaving zero traces on system logs and filesystem timestamps.
Cover your tracks during Linux Exploitation by leaving zero traces on system logs and filesystem timestamps.

moonwalk-back Cover your tracks during Linux Exploitation / Penetration Testing by leaving zero traces on system logs and filesystem timestamps. 📖 Ta

First project in rust which will be to make an accounts system & Leaderboard/Score system

rust-backend this is my first project in rust which will be to make a backend for compsci project it will include: Accounts, Player Achievements (if I

🦀️atos for linux by rust - A partial replacement for Apple's atos tool for converting addresses within a binary file to symbols.

atosl-rs 🦀️ atos for linux by rust - A partial replacement for Apple's atos tool for converting addresses within a binary file to symbols. tested on

Basic template for an out-of-tree Linux kernel module written in Rust.

Rust out-of-tree module This is a basic template for an out-of-tree Linux kernel module written in Rust. Please note that: The Rust support is experim

Binary Ninja plugin written in Rust to automatically apply symbol information from split debug info on Linux.

Load Symbols Binary Ninja plugin written in Rust to automatically apply symbol information from split debug info on Linux. Requirements Last tested wi

Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're working with files or directories, this tool simplifies common file operations with ease.

Rust FileOps Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're w

A command line tool written in Rust and designed to be a modern build tool + package manager for C/C++ projects.

CCake CCake is a command line tool written in Rust and designed to be a modern build tool + package manager for C/C++ projects. Goals To be easily und

Comments
  • refactor: remove match arm

    refactor: remove match arm

    .or_else gets called if the value of the Result is Err. At the end we call unwrap_or_else which either uses the value in if it is Ok (i.e., some package manager has been found) or it uses "Unknown".

    opened by mainrs 8
  • `cargo test` failing `fallback_session`

    `cargo test` failing `fallback_session`

    When running cargo test, I get the error message:

    running 3 tests
    test tests::xdg_current ... ok
    test tests::xdg_session ... ok
    test tests::fallback_session ... FAILED
    
    failures:
    
    ---- tests::fallback_session stdout ----
    thread 'tests::fallback_session' panicked at 'assertion failed: `(left == right)`
      left: `"i3"`,
     right: `"LG3D"`', src/lib.rs:229:9
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    
    
    failures:
        tests::fallback_session
    

    I'm using i3wm, which explains why the call to get_session_name is returning i3 for the left of the comparison. However, I don't understand how the fallback_session test is supposed to succeed, as no environment variables are set to the value LG3D. It seems to me like the fallback_session test should be changed on line 221, to set the environment variable DESKTOP_SESSION to LG3D, in order to test whether get_session_name works with the DESKTOP_SESSION environment variable.

    For testing the fallback value, the expected fallback should be Unknown if I'm not mistaken, however the environment variables aren't being cleared in order to test that (since get_session_name still seems to be returning i3wm, which seems like a different issue altogether.

    Sorry if I'm completely misinterpreting the situation, as I'm not totally sure what the intention is with the tests, hence why I have created an issue rather than fixing the test myself and submitting a pull request. Although with some further info I'm happy to fix this issue and submit a pull request (provided there is an issue at all)

    Many thanks again!

    opened by tripleab 2
  • refactor: fix clippy warnings

    refactor: fix clippy warnings

    I ran cargo clippy --fix to fix some linting errors. If you want try it out on the current commit and see what it shows you as output. Make sure to use cargo clippy to get the errors printed to the console. Since you seem to be new to Rust it might be a good idea!

    opened by mainrs 2
  • Fix clippy warning by changing for loop to an iterator

    Fix clippy warning by changing for loop to an iterator

    clippy was giving a needless_range_loop warning after pull request #5. I have reformatted in order to use an iterator. This warning could also be prevented by using #[allow(needless_range_loop)] above the aforementioned range loop.

    opened by tripleab 1
Releases(v0.1.1)
Owner
Ruturaj Nanoti
College student, Linux Enthusiast, and the creator of RnOS.
Ruturaj Nanoti
skyfetch ☁️ a system information fetch written in rust

skyfetch ☁️ a system information fetch written in rust requirements cargo install with curl

leo. 31 Dec 15, 2022
Microscopic fetch tool in Rust, for NixOS systems, with special emphasis on speed

Microfetch Stupidly simple, laughably fast fetch tool. Written in Rust for speed and ease of maintainability. Runs in a fraction of a millisecond and

raf 27 Oct 21, 2024
F-Fetch targets low systems. Written in Rust. It's very simple, designed so you can pick it up and replace it.

F-Fetch F-Fetch targets low systems. Written in Rust. It's very simple, designed so you can pick it up and replace it. First Look ~/.config/ffetch/con

cd 3 Jul 10, 2023
TMM is a Linux native game modding tool. it allows to install and depoly mods for Linux native and wine games.

Tux Mod Manager TMM is a Linux native mod manager made with the Tauri toolkit. It can install, load, remove and deploy mods for both Linux native and

Mathiew May 119 Dec 27, 2022
Alternative to *fetch, uwuifies all stats.

owofetch-rs Alternative to *fetch, uwuifies all stats. Installation: Arch: AUR Other Linux distros: Either compile the source with cargo build --relea

nett_hier 6 Dec 26, 2022
A simple cli to clone projects and fetch all projects in a GitHub org..

stupid-git A simple cli to clone projects and update all projects. get all repository from GitHub clone all pull all with git stash Usage create sgit.

Fengda Huang 5 Sep 15, 2022
Fetch and extract HTML's title and description by given link.

extd Fetch and extract HTML's title and description by given link. Usage in Cargo.toml: [dependencies] extd = "0.1.4" Example use extd::extract_td; f

null 4 Nov 4, 2022
A Linux laptop battery loggin tool written in Rust.

batt_log A Linux laptop battery logging tool written in Rust. It was built to track power usage of a laptop battery during each session. It keeps trac

Marco Padeiro 3 Apr 4, 2024
Pure-Rust rewrite of the Linux fontconfig library (no system dependencies) - using ttf-parser and allsorts

rust-fontconfig Pure-Rust rewrite of the Linux fontconfig library (no system dependencies) - using allsorts as a font parser in order to parse .woff,

Felix Schütt 28 Oct 29, 2022
Shell Escape for Typst typesetting system. Linux Only.

Shell Escape for Typst This is a simple shell escape for Typst. It allows you to run shell commands directly from Typst compiler. That said, it does n

Nikolay Stepanov 4 Jun 7, 2023