#next-cloud #cli

bin+lib krankerl

用于管理 Nextcloud 应用的 CLI 辅助工具

21 个版本

0.13.2 2021 年 8 月 24 日
0.13.1 2021 年 4 月 30 日
0.13.0 2021 年 3 月 8 日
0.12.3 2020 年 8 月 27 日
0.8.0 2018 年 5 月 17 日

#663 in 开发工具

每月 47 次下载

自定义许可GPL-3.0 许可证

2MB
1K SLoC

克朗克尔

Build Status Crates.io Crates.io AUR

用于管理 Nextcloud 应用的 CLI 辅助工具。

Usage:
  krankerl clean
  krankerl enable
  krankerl disable
  krankerl init
  krankerl login (--appstore | --github) <token>
  krankerl package [--shipped]
  krankerl publish [--nightly] <url>
  krankerl sign --package
  krankerl up
  krankerl version (major|minor|patch)
  krankerl --version

Options:
  -h --help     Show this screen.
  --version     Show version.

关于应用名称的疑问:单词 克朗克尔 在下奥地利方言中意为 卷须 是它在葡萄园中典型的样子。

启用当前应用

克朗克尔提供通过 occ 工具启用应用的快捷方式。这假设您位于应用的根目录中,且 occ 可在当前目录上方两级目录中找到。

krankerl enable

禁用当前应用

克朗克尔提供通过 occ 工具禁用应用的快捷方式。这假设您位于应用的根目录中,且 occ 可在当前目录上方两级目录中找到。

krankerl disable

打包

克朗克尔可以为当前应用构建 .tar.gz 归档。这假设应用根目录中存在 krankerl.toml 配置文件。如果没有,克朗克尔将回退到合理的默认值。命令将不会使用应用目录的当前状态,而是将其克隆到新目录中。此步骤是为了使应用构建可重现且独立于本地更改。

步骤

以下是克朗克尔执行打包应用的步骤

  • 如果存在,删除 build/artifacts
  • 将当前目录克隆到 build/artifacts/<app_id>
  • 运行打包前命令
  • 构建不排除任何 exclude 规则的文件和目录列表
  • 将这些文件和目录打包并压缩成 build/artifacts/<app_id>.tar.gz 归档

初始化配置

您可以通过手动创建 krankerl.toml 配置文件,或者使用 init 命令让克朗克尔为您创建它。

krankerl init

这将创建一个最小配置。根据您的需求进行调整。

配置概述

排除的文件

v0.12.0 版本起,Krankerl 不再支持排除文件列表。请使用 .nextcloudignore 代替。

您的仓库中的某些文件和目录不应包含在生成的 tarball 中。在 [package] 中的 exclude 数组列出了要排除的文件和目录的 glob 模式。

常见的排除项包括 .git 目录,以及仅在开发期间需要的测试和配置文件。

[package]
exclude = [
    ".git",
    "composer.json",
    "composer.lock",
    "krankerl.toml",
    "node_modules",
    "tests",
]

打包前命令

构建应用程序存档通常需要执行一些命令。常见的例子是 composer 和 npm 依赖项,这些依赖项不是 git 仓库的一部分,因此在克隆的目录中缺失。

package_cmds 数组允许您指定在应用程序根目录下由 sh 执行的命令。

[package]
before_cmds = [
    "composer install",
    "npm install",
    "npm run build",
]

发布

一旦您使用 package 命令打包了应用程序文件,Krankerl 允许您在 apps.nextcloud.com 上发布应用程序版本。

注意:目前这仅包括在应用商店的注册。您必须首先将存档上传到 GitHub(或任何下载服务器),然后将 URL 传递给 package 命令。

krankerl publish --nightly https://github.com/ChristophWurst/nextcloud_sentry/releases/download/nightly-20171126/sentry.tar.gz

--nightly 开关将应用程序注册为夜间版本。

依赖关系

~34–49MB
~1M SLoC