1 个不稳定版本

0.1.0 2023 年 7 月 20 日

#2640命令行工具

GPL-3.0 或更高版本

635KB
2K SLoC

autocast

GitHub Workflow Status Crates.io License

一个帮助自动化创建终端演示的工具。自动生成用于 asciinema 的 asciicast 文件。

demo

使用 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.yamldemo.yaml。有关所有配置值的详细说明,请参阅 full-example.yaml

指令类型

  • 命令
    • 普通 shell 命令或控制代码。
    • 可以是一行或跨多行。
    • 等待直到显示 shell 提示符,以确保命令已完成。
    • 可选地隐藏在 asciicast 输出中。
  • 交互式
    • 启动像编辑器或 TUI 应用程序这样的交互式 shell 命令。
    • 需要一个用于控制启动命令的键列表。
      • 键实时输入(包括任何等待),同时输出持续捕获。
    • 将所有键传递给命令后,它必须退出,并返回到提示符。
    • 与正常shell命令一样,它等待显示shell提示符后再执行下一条指令。
  • 等待
    • 在最后一条指令的输出和下一条指令的开始之间添加时间。
    • 这个时间仅在asciicast输出中添加,不会增加autocast的运行时间。
  • 标记
    • 向asciicast输出添加标记。
    • 标记是显示在asciinema网络播放器中的章节。
  • 清除
    • 向asciicast输出添加事件,这些事件将清除终端。

贡献

欢迎并感谢贡献和建议!请自由地创建问题讨论拉取请求。特别需要为其他shell(zsh、fish等)提供默认配置,因为我除了bash之外没有使用过其他shell的经验。

灵感

许可证

Autocast受GNU通用公共许可证v3.0或更高版本的许可,有关详细信息,请参阅许可证文件

依赖项

~14–44MB
~709K SLoC