Skip to main content

A Python script to help with dot file management

Project description

dotboy

A Python script to help with dot file management.

I originally started this because I got tired of manually copying dot files into my configuration repo any time I changed one and I didn't realize how many existing solutions there were.

Anyways, I kept working on it because it's a fun learning experience and I wanted to add specific features that I could use for myself and decided to share it with the world.

Requirements:

python>=3.8

Dependencies:

GitPython (handled by both pip and the aur packages)

Installation:

On Arch, you can use the python-dotboy or python-dotboy-git AUR packages.

Otherwise, you can install DotBoy with pip via pip install dotboy.

Configuration:

Configuration is done in a json stored in '~/.config/dotboy/config.json'

An example configuration json is:

{
  "repo_url": "https://gitlab.com/bwbuhse/dotboy",
  "repo_path": "~/projects/dot-files",
  "paths": [
    {
      "installed_path": "~",
      "repo_path": "",
      "files_to_copy": [
        ".tmux.conf",
        ".zshrc",
        ".zprofile",
        ".zpreztorc"
      ]
    },
    {
      "installed_path": "~/.config",
      "repo_path": ".config",
      "files_to_copy": [
        "nvim/init.vim",
        "nvim/coc-settings.json"
      ],
      "dirs_to_copy": [
        "alacritty",
        "sway",
        "waybar",
        "i3",
        "polybar",
        "picom",
        "dotboy"
      ]
    },
    {
      "installed_path": "/efi/EFI/refind",
      "repo_path": "refind",
      "files_to_copy": [
        "refind.conf"
      ]
    }
  ]
}

repo_url is the url to your dot file repository. This field is optional. If the repository path exists on the local machine, then this field is ignored. Otherwise, if the path doesn't yet exist, dotboy will clone the repo at this URL to the repo_path location.

repo_path is the path to the repository that you want to store the dot files in or where the repository already exists. This field is optional. If a path is supplied, the repository will be there, if not then the default path of ~/.dotboy will be used.

paths is a list of json objects, each corresponding to a path where dot files are stored on the system. Each object in paths needs two fields with two other optional variables.

installed_path is the path to the installed location of the dot_files. This field is required for each element in paths.

repo_path is the path that you want the files stored within each host-folder inside of the repo. This field is required for each element in paths.

files_to_copy and folders_to_copy are both lists of files and folders, respectively to/from the installed path and repo path. These elements are optional, however the paths element will be useless without at least one.

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

dotboy-0.3.1.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dotboy-0.3.1-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file dotboy-0.3.1.tar.gz.

File metadata

  • Download URL: dotboy-0.3.1.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for dotboy-0.3.1.tar.gz
Algorithm Hash digest
SHA256 87c53fe8c18a421ceeb29bcd3c3e765f2c0f520361d83cadd74b3e33894325e6
MD5 61edfbe4b5f2f639b1c2944d68649cba
BLAKE2b-256 cd48b1b5e62033829c65187bd1c47f9ad8858ea50a6220229451e2e6739e8b5e

See more details on using hashes here.

File details

Details for the file dotboy-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: dotboy-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for dotboy-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 914d4046bb415974ab442881232ea1bb15d93091ccaa9ce4a88ef9b7c5a71834
MD5 26082ffaf99c3ebc2a0786b9914e7646
BLAKE2b-256 0d35271fe6e83a968b630327246747acb69d99558aa21d1b6a69c763b7897638

See more details on using hashes here.

Supported by

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