微服务是目前较为流行的后端架构。它是由一组小型、独立的服务组成的。这些服务可以通过 API 相互通信,每个服务都专注于完成一个单一且明确定义的功能。微服务架构的优势在于它能够提高系统的可伸缩性、灵活性和可维护性。使用微服务可以使开发人员更加专注于具体的业务需求,而不是处理整个应用程序。
但常常,后端研发人员需要管理三四十微服务,服务之间的选择和切换会消耗研发人员的耐心,使用命令行来模糊搜索启动任意Git项目会极大提高工作效率。
脚本设计步骤#
我习惯将所有Git项目放在系统用户目录下的Projects,即~/Projects下。在~/Projects下创建托管平台文件夹,例如github.com和coding.net文件夹。再在github.com和coding.net文件夹下clone对应的Git项目仓库。
1. 使用命令查找所有包含.git文件夹的路径作为项目单元#
1
2
|
# -t=d搜索文件夹 -a绝对路径 -H搜索范围包含隐藏文件 --regex按照正则表达式搜索 -E排除项 -x为每个结果执行命令 而{//}表示父文件夹
fd -t=d -a -H --regex "\.git$" $HOME/Projects -E "vendor" -E "objects" -E "node_module" -x echo {//}
|
2. 将项目单元列表传入FZF命令中#
1
|
fzf --height 40% --layout=reverse --preview "tree -C {}"
|
3. 终端提供可交互流程用于输入打开的IDE或Editor#
1
|
echo -n "Editor: " && read KM_FD_OPEN_REPO_EDITOR && $KM_FD_OPEN_REPO_EDITOR $KM_FD_GIT_REPO_LIST
|
4. 将以上三个步骤有机的合并,并起个别名#
1
|
alias repos='KM_FD_GIT_REPO_LIST=$(fd -t=d -a -H --regex "\.git$" $HOME/Projects -E "vendor" -E "objects" -E "node_module" -x echo {//} | fzf --height 40% --layout=reverse --preview "tree -C {}") && echo -n "Editor: " && read KM_FD_OPEN_REPO_EDITOR && $KM_FD_OPEN_REPO_EDITOR $KM_FD_GIT_REPO_LIST'
|
最终效果#
- 支持模糊搜索
- 支持查询~/Projects目录下任意Git项目仓库
- 支持任意IDE或Editor工具打开