1 个不稳定版本
0.1.0 | 2023 年 10 月 6 日 |
---|
#1106 在 文件系统
120KB
3K SLoC
. . 0 . . .
0 . 1 \ 1 . .
. \ 1 0. _/_0 \/ 0 ________________________________________
0_) \/ / 1 0 /_/ ____ ___ __ __ _ _ __ _ __ _ _
.\/__(_/ (__/ . | \ | (_ |_/ |__) | .|__| |\ |
0 \/ . (_/. _|__/ _|_.__) _| \_ _|_ |__) | | | \|
. \_) _) 1 ________________________________________
. \_/__/ . .
(/ . .
) .
磁盘规划
磁盘规划是一个命令行工具和配置系统,可以从一组模式中构建目录树。它可以
- 创建文件、目录和符号链接
- 设置所有者、组和 UNIX 权限
- 创建具有固定名称的目录条目,或匹配正则表达式的变量条目
- 定义和重用模式子树
- 具有多个根茎,创建和遍历到其他茎的符号链接
快速入门
以下示例假设 diskplan
是一个可用的命令。如果您已经检出代码,您可以在当前终端中这样做以使其可用
$ cargo build
$ export PATH="$PWD/target/debug:$PATH"
目前,适当的安装留给读者。
要使用一个非常快速的示例运行 diskplan(不更改磁盘),请运行
$ cd examples/quickstart
$ diskplan /tmp/diskplan-root
您将看到以下预览
[WARN diskplan] Simulating in memory only, use --apply to apply to disk
[WARN diskplan] Displaying in-memory filesystem...
[Root: /tmp/diskplan-root]
drwxr-xr-x root root /tmp/diskplan-root/
drwxr-xr-x root root sub-directory/
-rw-r--r-- root root blank_file
磁盘规划在当前目录中查找 diskplan.toml
文件。以下是此示例的文件内容
[stems.main]
root = "/tmp/diskplan-root"
schema = "simple-schema.diskplan"
"main" 茎将磁盘上的根路径(在其中构建将被包含)与应用于此根路径内的路径的模式相关联。模式文件相对于配置文件找到,对于此示例包含以下内容
# Root directory configuration
# ...
:let emptyfile = /dev/null
# Sub-directory
sub-directory/
# Variable directory...
$variable/
# ...whose name must match this pattern...
:match [A-Z][a-z]*
# ...will then create this
inner-directory/
# An empty file
blank_file
:source ${emptyfile}
请注意,在早期输出中,已创建了 sub-directory
和 blank_file
,但没有为 $variable
创建任何内容。此变量目录可以直接通过路径创建,或者通过为此变量分配值来创建
$ diskplan /tmp/diskplan-root/sub-directory/Example
$ diskplan /tmp/diskplan-root --vars 'variable:Example'
这两个都产生以下输出
[Root: /tmp/diskplan-root]
drwxr-xr-x root root /tmp/diskplan-root/
drwxr-xr-x root root sub-directory/
drwxr-xr-x root root Example/
drwxr-xr-x root root inner-directory/
-rw-r--r-- root root blank_file
依赖项
~11MB
~190K SLoC