#generate #scaffold #setting-up #cli

app scaff

无需痛苦地搭建供他人使用的项目的繁琐部分

4个版本

0.1.3 2020年11月7日
0.1.2 2019年12月3日
0.1.1 2019年10月27日
0.1.0 2019年10月27日

#923 in 开发工具

MIT许可证

49KB
224

scaff Crates.io

无需痛苦地搭建供他人使用的项目的繁琐部分。

Scaff 可以用来生成许可证、初始 README 文件、makefile、构建衍生品等。这一切都归功于强大的 Tera 模板引擎!

示例用法

asciicast

工作原理

scaff 将基本上下载一个 tarball,运行 tera 在所有内容上,并从任何名为 scaff-out 的目录中提取所有内容。不提取整个 tarball 的原因是为了支持您可能希望从 tera 包含的隐藏文件,以及支持直接从 GitHub/GitLab 下载 git 仓库,而不包括根目录或其他非相关文件,如 readmes。

标准库

以下参数传递给 Tera

名称 类型
dirname 字符串 当前目录的名称
user 字符串 gitconfig --globaluser.name
query fn (prompt?, default?) -> value 查询用户输入

获取它

为了获取包含所有系统依赖项的 scaff,我建议使用 Nix 软件包管理器。还可以通过 Cachix 获取可选的二进制缓存。

cachix use jd91mzm2 # optional
nix-env -if https://gitlab.com/jD91mZM2/scaff/-/archive/master.tar.gz

或者,您可以使用官方的 Rust 软件包管理器 cargo,但这将需要您安装 Rust、C 编译器和 openssl。

cargo install scaff

不要使您的存储库膨胀

我制作了一个将代码愚蠢地倒入您的可能已经充满的代码库的工具,这可能会让人认为我在纵容膨胀。这不是事实 - 我不提倡膨胀,并且我不会推荐使用此工具提取 100 行代码或任何其他内容。这也是为什么此工具不允许更新存档中的任何更改的原因;它应该仅作为基础使用,而不是作为您在存储库之间同步的内容。

对于您打算重用和同步的配置文件,我建议使用 dhall 配置语言以保持一切模块化。这不是 dhall 的替代品,而是一种将基础 dhall 文件导出以供以后修改的方法。

依赖项

~21–33MB
~598K SLoC