paro : to prepare, get ready / set, put / furnish, supply.
Tool for managing dotfiles directories; Heavily based on rcm.
paro has first class support on macOS and Linux
For quick installation use:
bash < <(curl -s https://raw.githubusercontent.com/rafaeldelboni/paro/main/install.sh)
If you're a Rust programmer, paro can be installed with cargo
.
git clone https://github.com/rafaeldelboni/paro
cd paro
cargo install --path .
paro [OPTIONS]
Install dotfiles directories from the . This can be repeated with additional patterns.
Override the computer hostname by . Shall return the standard host name for the current machine.
Remove all the rc files that the paro suite knows about, This can be further controlled with the -t, -B and -a flags.
Shows what paro would do without causing the effects. A simulated or practice performance; rehearsal.
Override if the file already exists in your home directory, does not prompt for how to handle it.
Print help information
Install files that match . Despite being excluded by the -x flag or a setting in the config. This can be repeated with additional patterns.
Override the destination folder by . By default this value is the current user home directory.
Do not install files that match . Tagged files go in a directory named for the tag, prefixed with tag-. Therefore, files under .dotfiles/tag-git are only installed when installing using the git tag. This can be repeated with additional patterns.
Make the operation more talkative. This can be repeated for more verbosity.
Print version information
Do not install files that match . This can be repeated with additional patterns.
Note:
paro -h
prints a short and concise overview whileparo --help
gives all details.
You can set any of the options above in the configuration using TOML file format, check tests/settings.toml
for a full example.
paro will search for the config file in the following locations:
~/.parorc
~/.config/paro/parorc
~/.dotfiles/parorc
~/.dotfiles/config/paro/parorc
tags=["linux"]
excludes=["file.txt", "file2.txt"]
includes=[".file3.txt", ".hid/file4.txt"]
directories=["my-dotfiles/", ".dotfiles2/"]
destination="/home/user-name/"
hostname="override-my-computer-name"
By default paro defines these settings, that you can override with options above:
- directories:
~/.dotfiles
- destination:
~/
- hostname:
Unix Hostname (libc::gethostname)
paro is written in Rust, so you'll need to grab a Rust installation in order to compile it. paro compiles with Rust stable or newer. In general, paro tracks the latest stable release of the Rust compiler.
To build paro:
git clone https://github.com/rafaeldelboni/paro
cd paro
cargo build --release
./target/release/paro --version
0.0.1
paro is relatively well-tested, including both unit tests and integration tests. To run the full test suite, use:
$ cargo test --all
from the repository root.
paro currently has all the features I use from rcm, but is in the plans to add more existing and new features.
You can check the progress list: TODO.md
If you find any dead links, misinformation or any improvements in this software at all Emails, PRs and Issues are highly encouraged.
This is free and unencumbered software released into the public domain.
For more information, please refer to http://unlicense.org