自动将点文件部署到本地路径或远程主机
Dotlink的Python项目详细描述
dotlink是一个简单的脚本,用于自动部署任意一组“dotfiles” 使用ssh/scp从存储库到本地路径甚至远程主机。
点链接不管理点文件本身,而是使用简单的文本文件 将存储库中的点文件名映射到它们相对于 目标路径。这允许您拥有不带点前缀的文件,因为 实例,或避免复制深层目录结构以跟踪单个文件。
[![生成状态](https://travis-ci.org/jreese/dotlink.png?branch=master)](https://travis-ci.org/jreese/dotlink)
设置
dotlink需要python,版本2.7或3.2及更高版本。不 需要外部库。
要在系统范围内或在虚拟机中安装点链接,请执行以下操作:
# pip install dotlink
或者,如果您想破解点链接,请克隆repo并运行:
# python setup.py develop
用法
首先需要在dotfile的根目录中创建一个映射文件 名为.dotfiles(或仅dotfiles)的存储库,格式如下:
- 每一行都包含本地存储库文件名,可以选择后跟 冒号和目标文件名(如果不同于本地文件名)。
- 可以使用include“path/to/mapping”包含外部点文件映射, 并且请求的地图也将被加载。请求的路径可以是 是一个显式文件名,或包含名为dotfiles 或.dotfiles。
- 注释由以符号开头的行表示,并被忽略。
示例映射可能如下所示:
# the dotfiles to care about aliases: .alias .bashrc .profile: .profile htop: .config/htop/htoprc vim: .vim vimrc: .vimrc
# some external dotfile paths to include #include “repo2/dotfiles” #include “/full/patt/to/repo3/”
映射就位后,运行dotlink并告诉它源位置 存储库以及要将其部署到的位置:
$ dotlink [path/to/repository] [[[user@]host:]path/to/target]
源路径是可选的;如果 它会找到一个.dotfiles映射文件,除非您另有指定。目标 路径也是可选的,并假定为本地主目录。
源可以包括本地路径或远程git存储库url。 目标还可以包括本地路径,或通过ssh访问的远程路径 如果与当前登录不同,则提供主机名和用户名。
高级
###嵌入
如果要在点文件存储库中嵌入点链接, dotlink/dotlink.py是一个自包含的脚本,专门用于 用例。只需将dotfile.py复制到存储库中;它没有外部 依赖关系。
###远程源
源还可以指向远程位置,例如git存储库,以及 dotlink会将远程数据克隆到临时路径中,然后复制 将内容放入适当的路径中。如果您的源 路径以“git://”或“git@”开头,但也可以使用–git强制执行此操作 对于非标准URL。以下命令将克隆我的公共dotfile repo, 并将其安装到主目录:
$ dotlink git://github.com/jreese/dotfiles
这实际上相当于以下命令序列:
$ git clone git://github.com/jreese/dotfiles $ dotlink dotfiles $ rm -rf dotfiles
您甚至可以将远程源与远程目标结合起来克隆dotfile 本地存储库,然后通过scp将dotfiles复制到远程主机:
$ dotlink git://github.com/jreese/dotfiles jreese@devserver:
待办事项
一些计划的功能和更改是:
- 添加对远程源(如ssh/scp)以及git repos或tarballs的支持
- 从存储库内容生成映射文件?
法律
Dotlink版权所有2013 John Reese。
dotlink是根据mit许可证授权的。 有关详细信息,请参见许可证文件。