编写 bzr 命令脚本

编写 bzr 命令脚本

有人可以给我指明正确的方向,让我使用 shell 脚本或 Python 编写一个脚本来简化将 bzr 分支推送到启动板的过程吗?

脚本过程很简单:

  1. cd /directory/to/code
  2. 请求提交评论
  3. bzr commit - m $comment
  4. bzr push lp:~path/to/code

答案1

您可以将其按原样放入脚本中......

#!/bin/sh -e
cd /directory/to/code
bzr commit
bzr push

我故意省略了-mfor。Bazaarbzr commit将启动已配置的文本编辑器,您可以在其中输入,无需“请求”。

我也lp:~path/to/code故意省略了。手动执行bzr push lp:~path/to/code一次后,Bazaar 会记住该位置,下次只需执行 即可bzr push

需要帮助请叫我。

答案2

Shell 脚本非常容易上手。第一行必须是#!/bin/sh(a舍邦— 只需复制粘贴即可。然后每行输入一个命令。

如果您希望脚本在命令失败时停止,请将该行添加set -e为第二行。

如果您正在调试脚本并想要在执行命令之前显示它们,请添加set -x第二行。

#!/bin/sh
set -e
cd /directory/to/code
bzr commit
bzr push lp:~path/to/code

“请求提交评论” 的最佳方式是打开编辑器供您输入。这就是它的作用bzr commit

将此文件保存在目录中~/bin(如果不存在则创建它)并赋予其执行权限(chmod +x ~/bin/push-my-code在命令行上)。

如果您从命令行调用此脚本,则通常您已经位于正确的目录中,因此您不需要cd先执行命令。在这种情况下,您可以向 中添加一个函数,而不是脚本.bashrc

commit-and-push () {
  bzr commit &&
  bzr push lp:~path/to/code
}

然后输入commit-and-push将运行两个命令bzr commitbzr push&&第一个命令末尾的符号表示如果第一个命令失败,则不会执行下一个命令(因此,如果您注意到在输入变更日志条目时犯了错误并取消提交,则不会推送任何内容)。如果您总是推送到同一个地方,请省略推送命令的参数 — 这样就bzr commit足够bzr push了。

相关内容