Skip to main content

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.

Examples:

bare_estate.json:

{
  "history_location": "/home/lucas/.dotfiles"
}

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bare_estate-0.3.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

bare_estate-0.3-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file bare_estate-0.3.tar.gz.

File metadata

  • Download URL: bare_estate-0.3.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for bare_estate-0.3.tar.gz
Algorithm Hash digest
SHA256 1a5147b47b8c825d6e9d8e1a17798ba04d049cadb0c1e66a2d3e9fcba2a5c890
MD5 49b97e9224dbf1c4deaaf1339988bfa0
BLAKE2b-256 31fa44f1341c32431d5bce827c406b79d2470d511b78c6ed18cc2d52374ee699

See more details on using hashes here.

File details

Details for the file bare_estate-0.3-py3-none-any.whl.

File metadata

  • Download URL: bare_estate-0.3-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for bare_estate-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 24df9a9540f4c29aa6c4b3f36353beac62f56fea7f43ca16f51c71a27548483e
MD5 a2eaadd92ff43c4623ba1b4be9ff2a60
BLAKE2b-256 d6274d1d38755920d943ff8ea4a1a990163416bbc9bbb28971e56994aaf636f1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page