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 开发工具
49KB
224 行
scaff 
无需痛苦地搭建供他人使用的项目的繁琐部分。
Scaff 可以用来生成许可证、初始 README 文件、makefile、构建衍生品等。这一切都归功于强大的 Tera 模板引擎!
示例用法
工作原理
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