#cowsay #customization #fortune #terminal #fortune-cookie

app shell-toy

使用Rust实现的 "cowsay | fortune",即一个能让你Shell变得更加有趣的玩具。

6个版本

0.3.2 2024年8月23日
0.3.1 2024年8月23日
0.2.0 2024年8月8日
0.1.1 2024年8月2日

#299文件系统

Download history 218/week @ 2024-07-29 121/week @ 2024-08-05 8/week @ 2024-08-12

347 每月下载量

MIT 许可证

2MB
876

shell-toy

一个使用Rust实现的 cowsay | fortune

这仍然是一个WIP 演示 (请原谅这些小故障,它们来自asciiinema录制)

安装

由于项目状态不是我认为的“完成”,目前不提供预构建的二进制文件。

目前,最好的方法是使用Cargo

cargo install shell-toy

这将把shell-toy安装到您的本地路径上,作为 sh-toy。然后您可以将其放在任何您想要的终端启动脚本中。

Cargo 功能

有一些编译时功能可以使shell-toy执行某些操作,例如在可执行文件中使用嵌入的内部copy of fortunes。这可以根据您的需求进行自定义。更多详细信息请见下文

功能 描述
inline 启用在编译的 sh-toy 可执行文件中内联fortunes。有关更多详细信息,请参阅 使用内联fortunes编译
inline-off 还内联冒犯性fortunes。这些仍然可以通过 -o 标志进行阻止
fortune-git 仅使用fortune-mod存储库中的fortunes。期望在存储库中克隆子模块

使用内联fortunes进行编译

构建脚本将在使用fortunes时按以下顺序查找

  1. 如果指定了 FORTUNE_FILE 环境变量,则构建脚本将仅使用该文件的内容。
  2. 如果指定了 FORTUNE_PATHFORTUNEPATH 环境变量,则将嵌入该目录及其子目录中的fortunes作为单个文件。
    1. 在子目录 off 中的冒犯性fortunes将单独处理,并且只有启用 inline-off 功能时才会嵌入。因此,如果您有 FORTUNE_PATH=~/.config/fortunes,请将冒犯性fortunes放在 ~/.config/fortunes/off
  3. 如果在Linux平台上,它将在默认的fortune位置查找,位置为/usr/share/games/fortunes。除非您启用inline-off功能,否则来自这里的冒犯性fortune仍然不会嵌入。

如果您启用fortune-git功能并克隆fortune-mod子模块,则不会执行上述任何步骤。类似于上面的第3步,除非您启用inline-off功能,否则来自这里的冒犯性fortune仍然不会嵌入。

如果您选择在除Linux以外的任何平台上编译,构建脚本将需要指定上述环境变量之一,除非您启用fortune-git功能并克隆fortune-mod子模块。


使用方法

通过运行带有--help标志来获取帮助

 $ sh-toy.exe --help
Usage: sh-toy.exe [<message>] [-c <cow-file>] [--cow-path <cow-path>] [-o <include-offensive>] [-b <bubble>]

various program options

Positional Arguments:
  message

Options:
  -c, --cow-file    path to a direct cowfile
  --cow-path        path to a folder containing multiple cows we should search.
  -o, --include-offensive
                    whether to include offensive fortunes
  -b, --bubble      the type of bubble to create. Options are "think", "round",
                    and "cowsay"
  --help            display usage information

注意:Windows/非Linux支持

如果您在Linux平台上,系统已安装并可用cowsayfortune软件包,shell-toy将自动从默认安装目录中提取。否则,它需要一些变量或命令行参数。

  • COWPATHCOW_PATH:包含cowsay牛的文件夹
  • FORTUNE_FILE:用于fortune的单个以%分隔的文件,优先于PATH对应项
  • FORTUNEPATHFORTUNE_PATH:包含fortune的文件夹。冒犯性fortune应放置在名为off的子目录中,类似于fortune的做法。

shell-toy采用MIT许可证。

虽然fortune-mod是此存储库的Git子模块,但与fortune-mod的可执行文件没有源代码或二进制链接;在特定的编译场景中仅使用fortune文件。我声称对该存储库中的内容没有所有权或知识产权。

本项目使用了以下项目的代码的部分修改(这在源代码中进行了记录)

依赖项

~2.2–3MB
~56K SLoC