自动将点文件部署到本地路径或远程主机


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的支持
  • 从存储库内容生成映射文件?

推荐PyPI第三方库


热门话题
dcworkflow paretochart kyd 变色龙 machinelearning airship gob flonda sourcemaps multitenant result uwp 地面站 eventsocket closed directmessages aero 服务平台 sdf ssd1306128x64 shamir apiview xchange toolkits 小数 empiar stv 书写 glitch flickr requesthandler imgseek coapthon vertex imagescales salmon korail 挑战赛 autospec meneco 屈曲 confirm legos rssdocument anonymize shutil 远景 mdd vf ipn