55 个版本
0.13.2 | 2024年6月18日 |
---|---|
0.13.1 | 2023年12月10日 |
0.13.0 | 2023年7月21日 |
0.12.15 | 2023年3月22日 |
0.2.4 | 2017年11月2日 |
#227 in 命令行工具
516 次每月下载
150KB
3.5K SLoC
什么是 Dotter?
Dotter 是一个 dotfile 管理器和模板生成器。
Dotfiles 是 配置 文件,通常位于主目录中,以点开头。通常,备份系统上的所有配置是很受欢迎的,这就是为什么许多用户将他们的 dotfiles 保存到 git 仓库中,然后使用 ln -s
将它们链接到目标位置。
然而,这种基本方法存在几个问题
- 一旦你拥有超过几个 dotfiles,就很难追踪它们来自哪里
- 在新的机器上设置很繁琐 - 你需要手动创建每个链接
- 没有真正的方法来处理机器之间的差异 - 比如你希望在桌面机器上的栏上不显示电池计量器
Dotter 通过提供灵活的配置和自动模板或符号链接到目标位置来解决所有这些问题。
安装
Mac (Homebrew)
Dotter 可通过 Homebrew 安装,使用 brew install dotter
Arch Linux
以下 AUR 软件包可用
- dotter-rs-bin 用于最新版本的预编译版本
- dotter-rs 用于在您的机器上构建的最新版本的源代码
- dotter-rs-git 用于在您的机器上构建的 master 分支的最新提交
这些软件包都由 orhun 维护 - 非常感谢他!
Windows
Dotter 可通过 Scoop 使用。运行 scoop install dotter
安装最新版本。
其他
从最新版本下载适用于您平台的二进制文件,然后将其放入您的 $PATH
或您的配置文件存储库(然后您可以使用 ./dotter
运行它)。或者,Dotter 在 crates.io 上,如果您已安装 Rustup,则运行 cargo install dotter
。
维基百科
请查看 维基百科 获取更多信息。其中,它解释了如何设置和配置 Dotter,以及模板和部署的工作原理。
用法
现在您已配置了所有全局和本地文件部分,您可以直接在您的存储库中运行 dotter
。
所有文件都将部署到目标位置。
查看 Dotter 支持的命令行标志 dotter -h
A dotfile manager and templater written in rust
Usage: dotter [OPTIONS] [COMMAND]
Commands:
deploy Deploy the files to their respective targets. This is the default subcommand
undeploy Delete all deployed files from their target locations. Note that this operates on all files that are currently in cache
init Initialize global.toml with a single package containing all the files in the current directory pointing to a dummy value and a local.toml that selects that package
watch Run continuously, watching the repository for changes and deploying as soon as they happen. Can be ran with `--dry-run`
gen-completions Generate shell completions
help Print this message or the help of the given subcommand(s)
Options:
-g, --global-config <GLOBAL_CONFIG>
Location of the global configuration [default: .dotter/global.toml]
-l, --local-config <LOCAL_CONFIG>
Location of the local configuration [default: .dotter/local.toml]
--cache-file <CACHE_FILE>
Location of cache file [default: .dotter/cache.toml]
--cache-directory <CACHE_DIRECTORY>
Directory to cache into [default: .dotter/cache]
--pre-deploy <PRE_DEPLOY>
Location of optional pre-deploy hook [default: .dotter/pre_deploy.sh]
--post-deploy <POST_DEPLOY>
Location of optional post-deploy hook [default: .dotter/post_deploy.sh]
--pre-undeploy <PRE_UNDEPLOY>
Location of optional pre-undeploy hook [default: .dotter/pre_undeploy.sh]
--post-undeploy <POST_UNDEPLOY>
Location of optional post-undeploy hook [default: .dotter/post_undeploy.sh]
-d, --dry-run
Dry run - don't do anything, only print information. Implies -v at least once
-v, --verbose...
Verbosity level - specify up to 3 times to get more detailed output. Specifying at least once prints the differences between what was before and after Dotter's run
-q, --quiet
Quiet - only print errors
-f, --force
Force - instead of skipping, overwrite target files if their content is unexpected. Overrides --dry-run
-y, --noconfirm
Assume "yes" instead of prompting when removing empty directories
-p, --patch
Take standard input as an additional files/variables patch, added after evaluating `local.toml`. Assumes --noconfirm flag because all of stdin is taken as the patch
--diff-context-lines <DIFF_CONTEXT_LINES>
Amount of lines that are printed before and after a diff hunk [default: 3]
-h, --help
Print help
-V, --version
Print version
贡献
欢迎为 Dotter 做贡献,无论是以拉取请求或问题的形式(用于错误报告、功能请求或其他有用评论)
支持
喜欢我所做的事情,并想鼓励我继续前进?
您可以通过 Paypal 捐赠一小笔金额。
不期望捐赠,但如果您捐赠将非常感激。
依赖关系
~13–27MB
~413K SLoC