dotsync

command module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2024 License: BSD-3-Clause Imports: 15 Imported by: 0

README

dotsync

dotfiles manager without symlinks

Actions Status Coverage Status

Getting Started

go install github.com/lufia/dotsync@latest

SYNOPSIS

$ dotsync repo [-w path]

$ dotsync install [-f] source [...] dest

$ dotsync changes

$ dotsync diff [path ...]

$ dotsync pull [-n]

$ dotsync push [-n] [path ...]

$ dotsync uninstall [-f] [path ...]

$ dotsync export

dotsync repo gets the source root path. If -w option is passed, it updates source root with path.

dotsync install links source to dest to manage changes. When -f option is passed, it overwrites dest even if file is already exists.

dotsync uninstall unlink and remove path. When -f option is passed, it removes path even if file is locally modified.

dotsync changes prints locally changed filenames.

dotsync diff prints locally changes.

dotsync pull applies all updates from sources. If -n option is passed, it prints filenames but it don't update them.

dotsync push updates sources with local changes. If -n option is passed, it prints filenames but it don't update them.

FILES

dotsync manages both sources root and state files as a repository where is stored under ~/.local/state/dotsync directory. The source root is a path to the top of sources, all dotfiles will be copied from that directory. Typically it is managed by Git or other SCMs. Every state file is named as a relative path from the source root of the source file. These are stored under store directory in the repository, and these contains three values: SHA256 hash of the source file, permission and destination path.

For example, if you link ~/src/dotfiles/dot.bashrc to ~/.bashrc and ~/src/dotfiles/lib/plumbing to ~/lib/plumbing, then the repository will be figured out:

% tree ~/.local/state/dotsync
dotsync─┬─repo
        └─store─┬─dot.bashrc
                └─lib───plumbing
% cat ~/.local/state/dotsync/repo
/home/xxx/src/dotfiles
% cat ~/.local/state/dotsync/store/dot.bashrc
5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03 644 /home/xxx/.bashrc

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL