CLI
Rudel 会在 wp rudel 下注册其命令。WP-CLI 遇到此处未列出的命令选项时,会以 unknown --<name> parameter 拒绝该选项。
你可以在插件加载前于 wp-config.php 中定义 RUDEL_CLI_COMMAND,以便在嵌入式使用场景中重命名根命令。
define( 'RUDEL_CLI_COMMAND', 'sandbox' );
这会将 wp rudel create 改为 wp sandbox create。命令行为不会改变。
默认情况下,命令在主机上运行。若要在沙盒内运行其他任意 WP-CLI 命令,请设置 RUDEL_ENVIRONMENT:
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
创建
wp rudel create [--name=<name>] [--theme=<slug>] [--clone-from=<id>] [--owner=<owner>] [--labels=<labels>] [--purpose=<purpose>] [--protected] [--ttl-days=<days>] [--expires-at=<timestamp>] [--git=<remote>] [--type=<theme|plugin>] [--template=<label>]
创建一个沙盒并打印其 ID。
| 选项 | 含义 |
|---|---|
--name |
易读名称。ID 由名称和四个十六进制字符组成。默认使用仓库名称;若有 --git 则使用该名称,否则使用 sandbox。 |
--theme |
要复制到沙盒中的主题。必须已安装在主机上。默认使用主机的活动主题;若有 --clone-from,则使用源沙盒的主题。 |
--clone-from |
从现有沙盒克隆表和主题,而不是从主机克隆。 |
--owner、--labels、--purpose |
元数据。标签以逗号分隔。 |
--protected |
在清理时排除该沙盒。 |
--ttl-days |
相对于创建时间的到期时间。 |
--expires-at |
明确指定的到期时间戳。 |
--git |
将远程仓库克隆到沙盒目录中。请参阅 Git。 |
--type |
--git 的检出位置:theme(默认)或 plugin。 |
--template |
存储在记录中的标签,默认为 blank。不会加载已保存的模板。 |
--clone-db、--clone-themes、--clone-plugins、--clone-uploads、--clone-all、--shared-plugins 和 --shared-uploads 已弃用。它们只会更改进度消息:每个沙盒都会克隆表、复制一个主题,并共用插件和上传文件。
命令结束时会提示你 cd 进入沙盒目录并运行 wp post list。该命令会在主机上运行,因为沙盒目录中的 wp-cli.yml 指向主机的 URL。请改用 RUDEL_ENVIRONMENT。
列表
wp rudel list [--format=<table|json|csv|yaml|count>]
列出沙盒及其 ID、名称、所有者、保护状态、到期时间、状态、模板标签、创建时间和目录大小。
信息
wp rudel info <id> [--format=<table|json|yaml>]
显示一条沙盒记录,包括表前缀、主题、标签、克隆元数据、URL 和内容路径。
更新
wp rudel update <id> [--owner=<owner>] [--labels=<labels>] [--purpose=<purpose>] [--protected] [--unprotected] [--ttl-days=<days>] [--expires-at=<timestamp>] [--clear-expiry]
更新元数据。--ttl-days 从当前时间开始计算。不会更改沙盒站点内容。
销毁
wp rudel destroy <id> [--force]
删除沙盒表,移除其目录和关联的工作树,并删除其记录。命令会请求确认;--force 会跳过提示。保护状态不会阻止 destroy:受保护的沙盒也会像其他沙盒一样被销毁。
状态
wp rudel status
打印一张表,显示引导状态、当前沙盒、沙盒目录、沙盒数量、rudel_config 值,以及是否已安排自动化任务。它始终打印表格,并忽略 --format。
清理
wp rudel cleanup [--dry-run] [--max-age-days=<days>] [--max-idle-days=<days>] [--merged]
不带 --merged 时,会移除未受保护且已到期、超过存续期限或空闲时间超过限制的沙盒。--max-age-days 和 --max-idle-days 会在本次运行中覆盖 rudel_config。带 --merged 时,会移除关联的 Git 工作树分支已合并的沙盒。始终跳过受保护的沙盒。请参阅 清理。
日志
wp rudel logs <id> [--lines=<lines>] [--follow] [--clear]
打印沙盒 debug.log 的最后几行(默认为 50 行)。--follow 会运行 tail -f;--clear 会清空文件。请参阅 错误日志记录。
快照
wp rudel snapshot <id> --name=<name>
创建一个具名快照。
恢复
wp rudel restore <id> --snapshot=<name> [--force]
还原快照。命令会请求确认;--force 会跳过提示。请参阅 快照。
模板
wp rudel template save <id> --name=<name> [--description=<description>]
wp rudel template list [--format=<table|json|csv|yaml|count>]
wp rudel template delete <name> [--force]
保存、列出和删除模板副本。没有命令会根据已保存的模板创建沙盒。请参阅 模板。
推送
wp rudel push <id> [--git=<remote>] [--dir=<dir>] [--message=<message>]
将沙盒目录中的检出提交并推送到分支 rudel/<id>。
| 选项 | 含义 |
|---|---|
--git |
远程 URL。仅在未存储任何远程时需要;首次成功推送后会记住该值。 |
--dir |
相对于沙盒目录的目录,例如 themes/my-theme。默认为已存储的检出目录;若未存储,则使用整个沙盒目录。 |
--message |
提交消息,默认为 Update from Rudel sandbox。 |
请参阅 Git。