引导dotfiles的工具
dotbot的Python项目详细描述
dotbot
dotbot使您的dotfiles安装变得像git clone$url&;cd dotfiles&;一样简单,甚至在新安装的系统上也可以安装!
dotbot是引导您的dot files(它是一个[点]文件)的工具 好的,明白吗?它确实比你想象的要少,因为 控制系统的作用超出你的想象。
Dotbot的设计是轻量级的,独立的,没有外部的 依赖项,不需要安装。Dotbot也可以是 替换用于管理点文件的任何其他工具,以及 Dotbot与VCS无关--它不会尝试管理您的点文件。
如果您想要一个关于组织您的dotfiles的深入教程,请参阅博客 发布
5分钟后开始跑步
重新开始?
太好了!您可以使用 用户提供了初始化点文件脚本。如果你愿意用 模板存储库,查看点文件模板。或者,如果 你只是在寻找一些灵感,我们已经介绍过了。与现有的点文件集成
以下几步就能帮助您使用dotbot进行设置。
如果您使用的是git,则可以将dotbot添加为子模块:
cd ~/.dotfiles # replace with the path to your dotfiles git init # initialize repository if needed git submodule add https://github.com/anishathalye/dotbot cp dotbot/tools/git-submodule/install . touch install.conf.yaml
如果使用Mercurial,则可以将DotBot添加为子回购:
cd ~/.dotfiles # replace with the path to your dotfiles hg init # initialize repository if neededecho"dotbot = [git]https://github.com/anishathalye/dotbot" > .hgsub hg add .hgsub git clone https://github.com/anishathalye/dotbot cp dotbot/tools/hg-subrepo/install . touch install.conf.yaml
要开始,只需填写install.conf.yaml
和dotbot
会照顾好其他人的。为了帮助您入门,我们提供了
示例配置文件以及配置
可接受参数的文档。
注意:install
脚本只是一个检查适当的
dotbot的版本,并调用完整的dotbot安装程序。默认情况下,脚本
假设配置位于dotbot
子模块位于dotbot
中。您可以通过
适当编辑install
脚本中的变量。
将dotbot设置为子模块或子repo会将其锁定在当前版本上。
您可以随时升级dotbot。如果使用子模块,请运行git submodule update--remote dotbot
,用dotbot的路径替换dotbot
子模块;确保在运行
/install
之前提交更改,否则
安装脚本将签出旧版本的dotbot。如果使用
子回购,在dotbot目录中运行git fetch&;git checkout origin/master
。
如果愿意,可以从pypi安装dotbot 程序:
pip install dotbot touch install.conf.yaml
在这种情况下,您可以使用
dotbot-c<;配置文件路径>;
完整示例
下面是一个完整配置的示例。
配置文件的传统名称是install.conf.yaml
-defaults:link:relink:true-clean:['~']-link:~/.dotfiles:''~/.tmux.conf:tmux.conf~/.vim:vim~/.vimrc:vimrc-shell:-[git submodule update --init --recursive,Installing submodules]
配置文件也可以用json编写。这是json的等价物 以上给出的yaml配置。
这个文件的传统名称是install.conf.json
[{"defaults":{"link":{"relink":true}}},{"clean":["~"]},{"link":{"~/.dotfiles":"","~/.tmux.conf":"tmux.conf","~/.vim":"vim","~/.vimrc":"vimrc"}},{"shell":[["git submodule update --init --recursive","Installing submodules"]]}]< H2>配置
dotbot使用yaml或json格式的配置文件来指定 设置点文件。目前,dotbot知道如何链接文件和 文件夹,执行shell命令,并清除 符号链接断开。dotbot还支持用户自定义的插件 命令。
理想情况下,引导配置应该是等幂的。也就是说, 安装程序应该能够多次运行而不会导致 问题。这使得很多事情更容易做(特别是同步 机器之间的更新变得非常容易)。
dotbot配置文件是任务数组,其中每个任务 是一个字典,其中包含映射到该命令数据的命令名。 任务按指定的顺序运行。任务中的命令 没有定义的顺序。
在编写嵌套构造时,请记住yaml对空白敏感。 遵循示例中使用的格式是一个好主意。
另外,注意yaml中的~
与json中的null
相同。如果你想要单身
包含颚化符的字符串,请确保将其括在引号中:'~'
链接
链接命令指定文件和目录的符号链接方式。 如果需要,可以将项指定为强制链接,覆盖现有项 必要时归档。路径中的环境变量将自动展开。
格式
链接命令被指定为将目标映射到源的字典 位置。源位置是相对于基目录(即 在运行安装程序时指定)。如果链接目录,不包含斜杠。
链接命令支持(可选)扩展配置。在这种类型的 配置,而不是直接指定源位置,目标是 映射到扩展配置字典。
可用的扩展配置参数:
<表><广告>路径
创建
重新链接
强制
glob
*
字符视为通配符,并对所有这些匹配项执行链接操作(默认值:false)如果
$shell中执行此操作,只有成功时才链接。
示例
-link:~/.config/terminator:create:truepath:config/terminator~/.vim:vim~/.vimrc:relink:truepath:vimrc~/.zshrc:force:truepath:zshrc
如果源位置被省略或设置为null
,dotbot将使用
目标的basename,如果存在,则去掉前导。这使得
以下三个配置文件等效:
-link:~/bin/ack:ack~/.vim:vim~/.vimrc:relink:truepath:vimrc~/.zshrc:force:truepath:zshrc~/.config/:glob:truepath:config/*relink:true
-link:~/bin/ack:~/.vim:~/.vimrc:relink:true~/.zshrc:force:true~/.config/:glob:truepath:config/*relink:true
[{"link":{"~/bin/ack":null,"~/.vim":null,"~/.vimrc":{"relink":true},"~/.zshrc":{"force":true},"~/.config/":{"glob":true,"path":"config/*","relink":true}}}]
外壳
shell命令指定要运行的shell命令。shell命令在 基本目录(运行安装程序时指定的目录)。
格式
shell命令可以用几种不同的方式指定。最简单的方法是 只需将命令指定为包含要运行的命令的字符串。
另一种方法是指定一个双元素数组,其中第一个元素是 shell命令,第二个命令是可选的可读描述。
shell命令也支持扩展语法,其中罗维德斯
细粒度控制。命令可以指定为包含
要运行的命令、说明以及是否stdin
、stdout
,以及
stderr
已启用。在这个语法中,除了
命令本身。
示例
cd ~/.dotfiles # replace with the path to your dotfiles git init # initialize repository if needed git submodule add https://github.com/anishathalye/dotbot cp dotbot/tools/git-submodule/install . touch install.conf.yaml0
清洁
clean命令指定应该检查死符号的目录
链接。这些死链接会自动删除。只有死路一条
除非将force
选项设置为
true
格式
clean命令被指定为要清除的目录数组。
clean命令支持扩展配置语法。在这种类型的
配置,命令被指定为映射到选项的目录路径。如果
force
选项设置为true
,即使没有死链接也会被删除
指向dotfiles目录中的文件。
示例
cd ~/.dotfiles # replace with the path to your dotfiles git init # initialize repository if needed git submodule add https://github.com/anishathalye/dotbot cp dotbot/tools/git-submodule/install . touch install.conf.yaml1
默认值
可以指定插件的默认选项,这样就不必 重复多次。这对于使用link命令非常有用,因为 例子:
默认值应用于设置默认值后的所有命令。默认可以 多次设置;每次更改都用一组新的 选项.
格式
默认值被指定为将操作名映射到设置的字典,设置 是从选项名称到值的字典。
示例
cd ~/.dotfiles # replace with the path to your dotfiles git init # initialize repository if needed git submodule add https://github.com/anishathalye/dotbot cp dotbot/tools/git-submodule/install . touch install.conf.yaml2
插件
dotbot还支持由插件实现的自定义指令。插件是
作为dotbot.plugin的子类实现,因此它们必须实现
可以使用handle()
和handle()
。can handle()
方法应返回true
如果插件可以处理具有给定名称的操作。handle()
方法
应该执行某些操作并返回是否成功完成。
所有内置的dotbot指令都作为插件编写,由 默认设置,因此在编写自定义插件时可以将其用作参考。
使用--plugin
和--plugin dir
选项加载插件,使用
绝对路径或相对于基目录的路径。它是
建议将这些选项直接添加到安装脚本中。
维基
有关更多信息、技巧和窍门,请访问dotbot wiki。 用户贡献的插件等。
贡献
您是否有功能请求、错误报告或修补程序?伟大的!见 contribution.md了解您可以对此做些什么。
包装
更新版本信息。
使用
python setup.py sdist bdist\u wheel构建包
使用
捆绳上载-s dist/*
签名并上载包
许可证
版权所有(c)2014-2018 Anish Athalye。在麻省理工学院的许可下发布。见 license.md了解详细信息。