Manage your dotfiles seamlessly with a bare repo
Project description
Bare Estate
Table of Contents
About
Have you ever needed to install a brand new Linux distro or BSD system? Any experient user has done this at least a couple times, and certainly has a dotfiles repository somewhere. But how would you transfer your dotfiles? Maybe with symbolic links, copying files from a cloned repository, flash drive or perhaps a combination of those.
With Bare Estate you don't need a convoluted strategy for managing your dotfiles. You can create a bare repository that will store your repository's data. Manage your dotfiles as if they were on a regular repo. Even files from your home directory, without actually turning your home into a git repository itself.
And the best part is the application handles the abstraction for you, so you can use it in the same you use git!
Configuration
The configuration is made by using a json file. The path of the file is
${XDG_CONFIG_HOME}/bare_estate.json
. If you didn't set the value of the
XDG_CONFIG_HOME
environment variable, then it defaults to
${HOME}/.config/bare_estate.json
.
Config Options:
- history_location: it says where your bare repository directory will be located. Environment variables don't expand. So you will have to write the complete path of the file.
- base_directory: the directory from where you will manage all your dotfiles. You can either put them directly in the base directory, or in subdirectories within it.
Examples:
bare_estate.json:
{
"history_location": "/home/lucas/.local/share/bare_estate",
"base_directory": "/home/lucas"
}
Usage
The package introduces an executable script called estate
as the main
entrypoint for the application. It is used just like you would use git.
Examples:
- Initialize a new repo:
estate init
- Clone an existing repository:
estate clone <dotfiles-repo-url>
Warning: cloning a repository will overwrite your local files if the remote repository has files with the same name.
- Add files to the staging area:
estate add file1 file2 file3
- Check your repository's status:
estate status
- Commit your changes:
estate commit
- Push your changes to the remote repo:
estate push
Install
To install this package from the PyPI, you can use the command:
pip install -U bare-estate
The current version has no Python dependencies, other than the base install.
However, it requires git
and rsync
installed locally in order to work.
Credits
- Greg Owen, for the blog post that inspired this project
- StreakyCobra and the other users from Hacker News
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file bare_estate-0.5.tar.gz
.
File metadata
- Download URL: bare_estate-0.5.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 545a3fec05c785deb65daba2e1b861ff8431e75b1dd6f519583f9868cb03fbda |
|
MD5 | c2ae94cdaedee84622086515996b5fce |
|
BLAKE2b-256 | 1d9f5a044edbd0864b6c0b48535454b8b2a87a6e62c453797dcba5cec7ab1808 |
File details
Details for the file bare_estate-0.5-py3-none-any.whl
.
File metadata
- Download URL: bare_estate-0.5-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05910e08c6168ce0e2ca22206817e6d55ce3c8e87d10e9b1e3b733cda953eb77 |
|
MD5 | 8ca74889489df6264393a02580a07320 |
|
BLAKE2b-256 | 97d77b50b81885efb7ba7e6630459efebe212788fc79af14f7968126b1e8a8c8 |