Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
📖 Table of contents
- 🚀 Features
- 📥 Installation
- 🧭 Configuration
- 💡 Usage
- 🤝 Contributing
- 📜 License
- 🙏 Acknowledgments
- 🌟 Show Your Support
🚀 Features
- Fetch Quotes: Get random quotes from Wikiquote. 📜
- Custom Authors: Specify authors to fetch quotes from. 🖋️
- Rainbow Mode: Display quotes in random colors. 🌈
- Offline Mode: Use cached quotes when offline. 📴
- Configurable: Customize theme color, log file, and more via a TOML configuration file. 🛠️
- Lightweight: Fast and efficient, written in Rust. ⚡
📥 Installation
| Repository | Command To Install | Version |
|---|---|---|
| Crates.io | cargo install getquotes |
|
| AUR | yay -S getquotes |
|
| AUR (Git) | yay -S getquotes-git |
|
| Homebrew | brew install MuntasirSZN/programs/getquotes |
[!Note] You can install getquotes from the AUR using
yayorparu, or any other AUR helper.
Manual Installation
You can clone the repository and build it from source:
Then, copy the binary to your PATH:
Manpages are included in the repository and can be installed using:
If you are on windows, you can use the ps1xml file, which is a like a manpage for windows powershell. Use the Get-Help command to view the manpage.
copy .\man\getquotes.ps1xml $env:PSModulePath\getquotes.ps1xml
Get-Help getquotes
[!Important] If you are building for android from source, you need the Android NDK installed and the
ANDROID_NDK_HOMEenvironment variable set to the NDK path.
🧭 Configuration
getquotes can be configured using a TOML configuration file. The configuration file should adhere to the schema defined in config.schema.toml, which can be validated using Taplo. Here's an example of a configuration file:
# List of authors to fetch quotes from
= [
"Albert Einstein",
"Isaac Newton"
]
# Theme color in hex format
= "#FF5733"
# Maximum number of attempts to fetch a quote
= 50
# Log file path
= "custom_getquotes.log"
# Enable rainbow mode for random colors
= false
Properties
- authors: An array of author names to fetch quotes from. At least one author must be specified.
- theme_color: A hex color code (with or without a leading #) for theming the output.
- max_tries: The maximum number of attempts to find a quote (between 1 and 100, default is 30).
- log_file: The path to the log file (default is "getquotes.log").
💡 Usage
A simple cli tool to get quotes in your terminal using WikiQuotes
Usage: getquotes [OPTIONS]
Options:
-a, --authors <AUTHORS> Specify a list of authors to fetch quotes from
-t, --theme-color <THEME_COLOR> Set the theme color for the displayed quotes
-m, --max-tries <MAX_TRIES> Set the maximum number of tries to fetch a quote
-l, --log-file <LOG_FILE> Specify the log file path
-r, --rainbow-mode Enable rainbow mode for random quote colors
-i, --init-cache Initialize the quote cache for offline mode
-o, --offline Run in offline mode, using cached quotes
-v, --version Print version information
-C, --config <CONFIG> Use a custom TOML configuration file
-c, --completion <COMPLETION> Generate shell completion script [possible values: bash, elvish, fish, powershell, zsh, nushell]
-M, --migrate-config Migrate JSON config to TOML format (will be removed in next major release)
-h, --help Print help
MuntasirSZN <muntasir.joypurhat@gmail.com>
🤝 Contributing
We welcome contributions from the community! If you'd like to contribute, please follow these steps:
- Fork the repository. 🍴
- Create a new branch. 🌿
- Make your changes. ✏️
- Submit a pull request. 🚀
Please make sure to follow our Code of Conduct and Contribution Guidelines.
Configuration Schema
The configuration schema is defined in config.schema.toml. Any contributions affecting the configuration should update this schema accordingly.
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Wikiquote: For providing the quotes. 📖
- Rust Community: For the amazing ecosystem and tools. 🦀
- Inspiration: This project was inspired by the need for a simple, daily dose of inspiration. 🌟
🌟 Show Your Support
If you find this project useful, please give it a ⭐️ on GitHub!