Skip to main content

Modern Dotfile Manager

Project description

Sequestrum

Description

A modern, lightweight dotfile manager for the masses. This README.md may look daunting, but trust me on this, it's easy as pie. Promise. Now you may be wondering, why use this over Stow or Dotbot. Simple.Well for starters, the name is better. Do you need any other reasons? Fine, fine.. some real reasons.This is specifically made for dotfile management and provides features like modulatarity, dotfile repository setup, and more!

Install Guide

  1. sudo pip install (--user) sequestrum
  2. Leave a star on this repo
  3. Enjoy!

Usage

Getting Started

First, you'll need a Sequestrum Config in your dotfiles so it knows how to properly handle files. A guide to writing your own custom config along with an exampe config are down included down below. After you're done writing your config, you can come back to finish setup!

Note: Your dotfiles should be empty of all config files to keep from having duplicate files unless for some reason you would want that. Never edit your config when you have packages installed. Unlink then edit your config to prevent lost files.

Now they you're all setup with your config file, time for the fun to begin! If your configuration file is setup correctly, you should be able to run sequestrum --setup (full list of commands below) to finish setting up your dotfiles. If something goes wrong, be sure to check your configuration file to make sure everything is correct. Run -sequestrum --install after to symlink your dotfiles to your system. Setup will delete all local system files and move them to the dotfile repository.

Example Config

Here is an example of a finished config file.

options:
    base: &base
        dotfileDirectory: .dotfiles

    vimPackage:
        directoryName: vim
        commandsBefore:
            - ufetch
        links:
            - vimrc: .vimrc
            - vim-plugins: .vim/plugins
        commandsAfter:
            - ls

The name of your config file should be config.yaml, and should be placed within your dotfiles. In theory, the config file could be placed anywhere as long as you get your dotfileDirectory correct, but for cleanliness, it's recommneded to be placed within your dotfile repository.

Config Guide

As you can notice, all config files have to begin with options:. After that, you need to add a base, just take the one off the example configuration but change the name of the dotfileDirectory to wherever your dotfiles are located. For each set of files you want to package you'll need a seperate package declaration (ex. vimPackage in the example).

Directories

As you'll notice the each set of links you want to group will need their own package. You can name these whatever you like as long as they end in "Package" (ex. vimPackage or binPackage). In each package, you must include the directory name and links. Directory name is whatever you'd like the directory holding all the links to be called, and the links are the files getting linked. Each link is formatted like so: dotfileFileName: localFilePath. So in the example config, the file vimrc within my dotfiles would be linked to ~/.vimrc.

Installing

Installing dotfiles onto your system is as easy as pie. Simple run sequestrum -i . Make sure that the location on your system doesn't exist yet or it'll toss you an error. You can use all to install all your dotfiles.

Additonal Options

On top of the two required includes (directoryName and links), you also have to option to add a commandsBefore and commandsAfter. The names are pretty self explanatory, commandsBefore is a list of commands to run before the symlinking, and commandsAfter is a list of commands to run after the symlinking. More of custom options will be added in the future. If you have any ideas, just leave a feature request. C:

List of Commands

  1. -s, --setup : Setup your dotfile repository
  2. -i, --install: Installs your dotfiles onto the system
  3. -u, --unlink : Unlink a package from your system
  4. -d, --delete : Delete a repository from your dotfiles
  5. -r, --refresh: Refresh your dotfiles based on your config
  6. -b, --backup : Backup your system and check your config

TODOS

  • Dual way safety checks for install and setup
  • Safety checks before backup
  • Fix Refresh
  • Commands to modify config
  • Add support for more directories than home

Contributing

If you'd like to contribute, whether that'd be improving the comments or README (which could always use work), or adding functionality, just fork this, add to it, then send a merge request. I'll try and get around to looking at it as soon as possible.

License

Copyright (c) 2018-2018 Ivy Zhang. Released under the MIT License.

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

sequestrum-1.3.2.tar.gz (11.5 kB view hashes)

Uploaded Source

Built Distribution

sequestrum-1.3.2-py3-none-any.whl (11.1 kB view hashes)

Uploaded Python 3

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