#config-file #generate #version #command-line-tool #different #txt #multiple

app multiconf

轻松生成不同版本的配置文件

12 个版本

0.1.11 2022年2月12日
0.1.10 2022年2月12日

#660配置

每月 35 次下载

GPL-3.0-only

19KB
75

MultiConf

一个命令行工具,可以从单个模板轻松生成多个配置文件版本。

为什么?

我是 i3 窗口管理器的忠实粉丝,我在几个 Linux 桌面和笔记本电脑上使用它。虽然我想要所有这些计算机上的相同 i3 配置,但有些需要不同的变体。

我创建了 multiconf,以便轻松生成配置文件的多个变体。

如何安装

  1. 安装 cargo(Rust 软件包管理器)
$ curl https://sh.rustup.rs -sSf | sh
  1. 安装 multiconf
$ cargo install multiconf

如何使用

创建一个名为 base.txt 的文件

global config 1
global config 2
dog$>>canine config 1
cat$>>feline config 1
global config 3

然后从 base.txt 创建 dog.txt

$ multiconf --choice dog --input base.txt --output dog.txt

这将会包含

global config 1
global config 2
canine config 1
global config 3

如果您希望 dog.txt 在 base.txt 更改时自动更新,请使用

$ multiconf --choice dog --input base.txt --output dog.txt --watch

使用 i3 配置文件的示例

这是我 i3 配置中的一行,可以根据计算机的计算机名使用不同的版本

exec --no-startup-id multiconf \
    --choice `hostname` \
    --input ~/Dropbox/code/linux-cfg/i3/config \
    --output ~/.config/i3/config \
    --watch

以下是我 i3 配置中的一些示例行,我通过 Dropbox 在机器之间共享

# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
technic$>>font pango:DejaVu Sans Mono 12
pocket$>>font pango:DejaVu Sans Mono 16
framework$>>font pango:DejaVu Sans Mono 15

technicpocketframework 是我的三台 Linux 计算机的计算机名。

命令行参数

multiconf [version]
Easily generate different versions of config files

USAGE:
    multiconf [OPTIONS] --choice <CHOICE>

OPTIONS:
    -c, --choice <CHOICE>          The selected
    -h, --help                     Print help information
    -i, --input <INPUT>            The input file, or stdin if not specified
    -o, --output <OUTPUT>          The output file, or stdout if not specified
    -s, --separator <SEPARATOR>    Separates choice from the line chosen [default: $>>]
    -V, --version                  Print version information
    -w, --watch                    Watch the input file for changes and update the output file when
                                   it does

依赖项

~3–11MB
~112K SLoC