#dotfiles #symlink #management #link

app dotlink

无废话的dotfiles链接器

4个版本

0.2.1 2023年10月20日
0.2.0 2023年8月3日
0.1.1 2023年4月24日
0.1.0 2023年4月20日

#497 in 配置

MIT 许可证

22KB
504

一个简单的程序,可以帮助您将所有dotfiles链接到正确位置。

支持多个预设,以避免在每个机器上链接每个文件。

如需更多信息,请访问项目在 github 上的页面。

功能!

  • 简单的 配置文件(TOML,YAML或JSON)。
  • 支持为不同的机器配置 多个预设
  • 跨平台(Unix和Windows)。
  • 不会覆盖链接或文件。
  • 如果已存在链接,会检查它是否指向正确的文件。

真实案例使用(展示简单性)

我已经创建了自己的 dotfiles 仓库,并包含一个 dotlink.toml 文件。

在我的情况下,我只需克隆仓库并在其中运行dotlink。

$ git clone https://github.com/TheRealLorenz/dotfiles.git
$ cd dotfiles
$ dotlink -p macOS

程序会自动选择当前工作目录中的配置文件并将所有内容链接起来!

它如何工作?

dotlink依赖于名为dotlink.tomldotlink.yamldotlink.json的配置文件。

在配置文件中,您可以指定多个预设,每个预设都是一个条目向量。

预设是配置文件的顶级键。

有两种类型的条目

  • 简单条目
[[preset_name]]
name = 'foo'                        # File name
to = '/path/to/destination'         # Destination directory
rename = 'foo2'                     # Link name (optional, defaults to the file name)
preset_name:
  - name: 'foo'                     # File name
    to: '/path/to/destination'      # Destination directory
    rename: 'foo2'                  # Link name (optional, defaults to the file name)
{
  "preset_name": [
    {
      "name": "foo",                // File name
      "to": "/path/to/destination", // Destination directory
      "rename": "foo2"              // Link name (optional, defaults to the file name)
    }
  ]
}
  • 多个条目
[[preset_name]]
names = [ 'foo', 'bar', 'baz' ]         # Multiple file names
to = '/path/to/destination/'            # Destination directory
preset_name:
  - names: [ 'foo', 'bar', 'baz' ]      # Multiple file names
    to: '/path/to/destination/'         # Destination directory
{
  "preset_name": [
    {
      "names": [ "foo", "bar", "baz" ], // Multiple file names
      "to": "/path/to/destination/"     // Destination directory
    }
  ]
}

然后程序会将指定由namenames的每个文件简单地符号链接到相应的to

用法

运行 dotlink -h 将显示帮助信息

Usage: dotlink [OPTIONS] [PATH]

Arguments:
  [PATH]  

Options:
  -p, --preset <PRESET>  Which preset to use [default: default]
  -l, --list-presets     
  -F, --file <FILE>      Custom config file location
      --dry-run          
  -h, --help             Print help

PATH 表示 dotfiles的路径。默认为 当前工作目录

依赖关系

~6–17MB
~193K SLoC