6 个版本 (1 个稳定版本)

1.0.0 2023年1月5日
0.2.1 2022年12月30日
0.1.2 2022年12月7日
0.1.0 2022年11月29日

命令行工具 中排名 #2082

每月下载量:21 次

MIT 许可证

205KB
5K SLoC

ci

projectctl

项目管理 CLI 工具。

入门

  • 从二进制文件安装
VERSION=1.0.0

# Linux x64
curl -Lfo /usr/local/bin/projectctl https://github.com/leroyguillaume/projectctl/releases/download/v$VERSION/projectctl-$VERSION-linux-x64
# Linux aarch64
curl -Lfo /usr/local/bin/projectctl https://github.com/leroyguillaume/projectctl/releases/download/v$VERSION/projectctl-$VERSION-linux-aarch64
# MacOS x64
curl -Lfo /usr/local/bin/projectctl https://github.com/leroyguillaume/projectctl/releases/download/v$VERSION/projectctl-$VERSION-macos-x64
# MacOS ARM
curl -Lfo /usr/local/bin/projectctl https://github.com/leroyguillaume/projectctl/releases/download/v$VERSION/projectctl-$VERSION-macos-aarch64

sudo chmod +x /usr/local/bin/projectctl

# Allow projectctl to source environment variables automatically when you're entering into a directory present in ~/.projectctl/allowed-dirs
# If you're using bash
echo 'eval "$(projectctl hook bash)"' >> ~/.bashrc
source ~/.bashrc
# If you're using zsh
echo 'eval "$(projectctl hook zsh)"' >> ~/.zshrc
source ~/.zshrc
  • 使用 cargo 安装
cargo install projectctl

# Allow projectctl to source environment variables automatically when you're entering into a directory present in ~/.projectctl/allowed-dirs
# If you're using bash
echo 'eval "$(projectctl hook bash)"' >> ~/.bashrc
source ~/.bashrc
# If you're using zsh
echo 'eval "$(projectctl hook zsh)"' >> ~/.zshrc
source ~/.zshrc
  • 从源代码安装
git clone https://github.com/leroyguillaume/projectctl
cargo install --path projectctl

# Allow projectctl to source environment variables automatically when you're entering into a directory present in ~/.projectctl/allowed-dirs
# If you're using bash
echo 'eval "$(projectctl hook bash)"' >> ~/.bashrc
source ~/.bashrc
# If you're using zsh
echo 'eval "$(projectctl hook zsh)"' >> ~/.zshrc
source ~/.zshrc

项目

要使用模板创建新项目,可以使用 new 子命令。

默认情况下,使用 leroyguillaume/projectctl-templates 作为模板存储库。每个目录对应一个模板。如果您想添加一个,请随意发起一个 pull request!您可以使用 --git 选项来覆盖它。

Liquid 被用作模板引擎。每个扩展名为 .liquid 的文件将被渲染。您可以对文件名进行模板化。

projectctl 注入了一些变量

  • name 其值为项目名称
  • description 其值为项目描述(可以与 -d 选项一起设置,默认未设置)
  • env 包含所有环境变量
  • git 包含默认的 git 配置

您也可以定义任何想要的变量,但请注意,您必须在运行命令时通过添加 --values 选项来设置它。

示例

projectctl new rs-lib my-project-name
projectctl new --values '{"repository-url":"https://github.com/username/project-name"}' rs-lib my-project-name

projectctl 自动更新 ~/.projectctl/allowed-dirs

当您想删除一个项目时,您可以运行以下命令以确保一切清理干净

projectctl destroy my-project-name

配置文件

当您运行 projectctl env 时,以下配置文件将被加载(从低到高优先级)

  • projectctl.yml
  • projectctl.本地.yml

注意,您可以使用选项 -c(或 --config)覆盖这些位置。

所有配置文件都必须匹配 此 JSON 架构

您可以在 这里 找到一些配置示例。

依赖

25–40MB
~768K SLoC