1 个不稳定版本
0.0.1 | 2022 年 9 月 16 日 |
---|
#4 在 #lezeh
每月 32 次下载
用于 lezeh
29KB
471 行
Lezeh
lezeh
是一个 CLI 工具,用于简化日常工程操作,例如
- 选择数据库行及其关系
- 可视化数据库行关系的图表示
- 合并功能分支(按惯例,使用 phabricator 任务号)到 master,这包括清理(删除)已合并的功能分支
- 合并并运行部署命令
安装
下载二进制文件
前往最新版本并下载二进制文件 此处
二进制文件 | 操作系统 |
---|---|
lezeh-x86_64-未知-linux-gnu.zip |
Linux |
lezeh-x86_64-apple-darwin.zip |
macOS |
使用 cargo
cargo install lezeh
手动构建
这需要 rust
make install
设置
首先在 ~/.lezeh
创建配置文件,我们使用 YAML 格式。每个顶级键都按 lezeh 子命令命名
url
映射到lezeh url ...
命令db
映射到lezeh db ...
子命令- 等等...
url:
bitly:
api_token: test123
db:
db_connection_by_name:
testdb:
host: localhost
port: 5432
database: db_name
username: ....
password: ....
deployment:
phab:
api_token: test125
pkcs12_path: /path/to/pkcs12
host: 'yourphabricatorhost.com'
pkcs12_password: abcdefg
ghub:
api_token: test124
repositories:
# This is a unique key that will be used as hashmap key
# for the repo.
- key: "repo-key"
path: "repo-local-path"
github_path: "username/reponame"
deployment_scheme_by_key:
stg:
name: "Deploy to stg"
default_pull_request_title: "Merge into stg"
merge_from_branch: "master"
merge_into_branch: "stg"
prod:
name: "Deploy to prod"
default_pull_request_title: "Merge into prod"
merge_from_branch: "stg"
merge_into_branch: "prod"
用法
URL CLI
lezeh url shorten {longUrl}
数据库 CLI
主要用于与数据库操作相关的工具。目前仅支持 postgres。
cherry-pick
假设您有一个想要复制的表行,但由于它具有关系且需要递归地复制父级和子级,因此无法轻松复制。这就是 cherry-pick 可以派上用场的地方。
lezeh db cherry-pick \
# Fetch from test_db, this one is based on the config
--source-db=testdb \
# As of now only supports 1 value, but it will change in the future
--values=123 \
# Table that the value will be fetched from
--table=orders \
# [Optional] which column that contains the given values, defaults to id
--column=id \
# [Optional] Db schema, defaults to public
--schema=public \
# [Optional], defaults to insert-statement. If supplied Graphviz then it'll serialize
# the graph representation that can be represented in a graphviz format
# see https://graphviz.org/ for more details.
# The output can be used on online graphviz visualizer:
# * https://edotor.net
# * https://dreampuf.github.io/GraphvizOnline
--output-format=insert-statement|graphviz \
# [Optional]
# The option will be used if you choose pass `--output-format=graphviz`.
# Set the table columns that will be displayed on each node, if not set it'll
# default to only show the row id, format:
# '{table_1}:{column_1}|{column_2}|{column_n},{table_n}:{column_n}'
#
# Suppose you pass `--graph-table-columns='users:id|name|email, orders:code'`, it will
# * Show id, name and email column value for all fetched rows from users table
# * Show code column value for all fetched rows from orders table
# * The other rows from other tables will still only show row id because
# it's not overriden
--graph-table-columns='{table_1}:{column_1}|{column_2}|{column_n},{table_n}:{column_n}, {table_n}:{column_n}'
部署 CLI
# Below command will iterate all repositories under deployment.repositories config
# and do the following operations:
# * Make sure your local git data is updated by pulling remote git data from GH.
# * For each remote branches that contains the given task numbers:
# - Print out phabricator task owner (assigned) for that specific branch.
# - Create a PR for the matched branch.
# - Merge the branch into master with SQUASH strategy
# - Delete the remote branch
lezeh deployment merge-feature-branches {task_number} {task_number} {task_number} ...
# Merge repo (given repo key) based on given deployment scheme config.
#
# Example usage (based on above config example):
# lezeh deployment deploy repo-key stg
lezeh deployment deploy {repo_key} {scheme_key}
依赖关系
~12–22MB
~303K SLoC