1 个不稳定版本
0.1.0 | 2023 年 7 月 20 日 |
---|
#2640 在 命令行工具
635KB
2K SLoC
autocast
一个帮助自动化创建终端演示的工具。自动生成用于 asciinema 的 asciicast 文件。
使用 autocast 创建的演示,请参阅 demo.yaml。演示也可以在 asciinema 上查看。
特性
- 从输入 YAML 文件的设置和指令中生成 asciicast 文件。
- 快速,运行时间取决于 shell 命令的运行时间,开销最小。
- 使用 bash、python 或自定义 shell。
- 自定义输出的提示符和辅助提示符,与 shell 的提示符不同。
- 使用隐藏命令进行自动化设置和清理。
安装
- 从 发布 下载预构建的二进制文件。
- 使用 cargo-binstall 获取带有
cargo binstall autocast
的预构建二进制文件。 - 使用
cargo install autocast
构建 和安装。
用法
CLI
$ autocast -h
Automate terminal demos
Usage: autocast [OPTIONS] <IN_FILE> <OUT_FILE>
Arguments:
<IN_FILE> Input file to create the asciicast file with
<OUT_FILE> Output asciicast file
Options:
--width <WIDTH>
Terminal width
--height <HEIGHT>
Terminal height
-t, --title <TITLE>
Title of the asciicast
--shell <SHELL>
Shell to use for running commands [default: bash] [possible values: bash, python]
-e, --environment <NAME=VALUE>
Environment variables to use in the shell process
--environment-capture <ENV_VAR>
Environment variables to capture [default: TERM] [aliases: env-cap]
-d, --type-speed <TYPE_SPEED>
Default time between key presses when writing commands [default: 100ms] [aliases: delay]
--prompt <PROMPT>
The shell prompt to use in the asciicast output [default: "$ "]
--secondary-prompt <SECONDARY_PROMPT>
The shell secondary prompt to use in the asciicast output [default: "> "]
--timeout <TIMEOUT>
Maximum amount of time to let a shell command run before returning with an error [default: 30s]
--overwrite
Overwrite output file if it already exists
-h, --help
Print help (see more with '--help')
-V, --version
Print version
使用 autocast --help
查看CLI参数的更详细说明。也可以查看 full-example.yaml 中的相应设置。
非默认CLI参数将覆盖输入 YAML 文件中指定的设置。
输入 YAML 文件
有关示例,请参阅 example.yaml 和 demo.yaml。有关所有配置值的详细说明,请参阅 full-example.yaml。
指令类型
- 命令
- 普通 shell 命令或控制代码。
- 可以是一行或跨多行。
- 等待直到显示 shell 提示符,以确保命令已完成。
- 可选地隐藏在 asciicast 输出中。
- 交互式
- 启动像编辑器或 TUI 应用程序这样的交互式 shell 命令。
- 需要一个用于控制启动命令的键列表。
- 键实时输入(包括任何等待),同时输出持续捕获。
- 将所有键传递给命令后,它必须退出,并返回到提示符。
- 与正常shell命令一样,它等待显示shell提示符后再执行下一条指令。
- 等待
- 在最后一条指令的输出和下一条指令的开始之间添加时间。
- 这个时间仅在asciicast输出中添加,不会增加autocast的运行时间。
- 标记
- 向asciicast输出添加标记。
- 标记是显示在asciinema网络播放器中的章节。
- 清除
- 向asciicast输出添加事件,这些事件将清除终端。
贡献
欢迎并感谢贡献和建议!请自由地创建问题、讨论或拉取请求。特别需要为其他shell(zsh、fish等)提供默认配置,因为我除了bash之外没有使用过其他shell的经验。
灵感
- asciinema
- VHS
- asciinema_automation
- expectrl
- 用作依赖项,但根据autocast的需求重新实现了某些顶层功能(特别是在
ShellSession
中的Session
和ReplSession
)。
- 用作依赖项,但根据autocast的需求重新实现了某些顶层功能(特别是在
许可证
Autocast受GNU通用公共许可证v3.0或更高版本的许可,有关详细信息,请参阅许可证文件。
依赖项
~14–44MB
~709K SLoC