medkit

command module
v0.0.1-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2018 License: MIT Imports: 1 Imported by: 0

README

MEDKIT

MEDKIT (Multi-Environment Dotfiles Kit) is the dotfile management solution for the obsessive compulsive.

GitHub issues Go Report Card CircleCI

Complete Command List

commands

Overview

MEDKIT is a tool to help you take control of your local environment configuration including:

  • Dotfile Management
  • Run Command (rc) Script Management
  • PATH Variable Management
  • Software Installation

MEDKIT also has a native concept of environments which allow you to categorize your settings to match the systems you're using. This lets you customize each environment with ease.

Manage Your Dotfiles

The trouble with dotfiles is that, unless you have just one login on one computer, you'll have lots of them spread all over the place. If you're like most people, you want your preferences and configuration to be consistent no matter where you log in.

MEDKIT follows a "Write Once, Use Anywhere" philosophy. With a little help from your favorite version control tool, you can keep a "master" copy of your dotfiles and apply them anywhere you go.

  • Install the dotfiles in your repository
  • Scan for new dotfiles
  • Add dotfiles to your repository
Organize Your Startup

Startup files often start simple, but turn into a nightmare to manage. It gets worse when tools and installers try to be helpful and make changes to them without asking. You can take advantage of MEDKIT's version control integration and templates to get your startup scripts under control once and for all.

  • Start with the MEDKIT template or roll your own
  • Run *.source scripts at startup
Organize Your PATH

Much like startup scripts, keeping your environment's PATH in order can be a real challenge. MEDKIT's convention-based system can help!

  • Run *.path scripts
  • Determine the order of each PATH element
Install Your Software

Getting all your tools installed is often one of the biggest challenges when you start using a new computer for the first time. With MEDKIT, you can script your installation scripts and run them as-needed.

  • Run *.installer scripts
  • Remember what has already been run
  • Reset if needed
Environments

MEDKIT allows you to define one or more environments, but right now it's a big mystery.

Installation

macOS:

TBD

Linux:

TBD

Windows WSL:

TBD

Usage

Dotfiles structure

MEDKIT operates on a convention-based directory structure consisting of a root, and N bundle directories:

dotfiles/
├ bundles
│   ├ go
│   │   ├ Brewfile
│   │   └ path.sh
│   └ macos
│       └ Brewfile
├ homebrew
│   └ Brewfile
├ vim
│   └ .vimrc.symlink
└ zsh
    ├ install.sh
        └ .zshrc.symlink

Files you intend to share across all systems should be organized at the root level of your dotfile directory.

Files that you only want to use on some systems can be organized under the bundles directory. Each directory under bundles/ will act as a bundle, and can be optionally installed by specifying it at the command line, or in the .medkit config file.

In the example directory structure above, you can see 3 instances of the Brewfile. homebrew/Brewfile exists at the root level, and will install software every time medkit is run. Under the bundles directory, there is a Brewfile for the go bundle, and another for the macos bundle. The latter two brewfiles will only be run if specifically requested.

Initialization

First, we need to set up a ~/.medkit config file specifying the location of our dotfiles (defaults to ~/dotfiles), and any bundles we would like to enable on this machine.

dotfiles-directory: /home/marvin/dotfiles
active-bundles: [go,macos]

If you already have a dotfiles repo, clone it into dotfiles directory specified in your config file, and ensure that it follows the conventions described above.

If you do not yet have your own dotfiles, let medkit help you create one. Create and init your dotfiles directory:

mkdir /home/marvin/dotfiles
medkit init
TODO: Adding Dotfiles

Now, let's add an existing dotfile to MEDKIT. Of course, you'll replace the example path shown below with something real on your computer.

medkit add dotfile -f /home/marvin/.vimrc -d vim

This command will:

  • Create a new folder in your dotfiles repo (if it doesn't already exist) named vim
  • Move the specified dotfile into the folder
  • Symlink the dotfile back to the original location

You can view all of the dotfiles MEDKIT is managing like this.

medkit get dotfiles

At this point you're ready to make your repo available in your other environments. MEDKIT is agnostic when it comes to how you do this, but using something like GitHub is highly recommended.

TODO: Provide basic GitHub instructions.

Install Dotfiles

With your MEDKIT repo now under version control, you can use your repo anywhere. Let's say you have a new computer. Just clone your GitHub repository to the new computer and install your dotfiles.

medkit install dotfiles

That's it!

Updating Dotfiles

When you make a change to a dotfile, you'll probably want to make that change available on all your computers. The specifics of how to synchronize your MEDKIT repo will depend on the tools you choose. If you're using GitHub, for example, you'll need to make your changes, push them to GitHub, then pull them on all your other computers. No matter which process you prefer, your dotfiles will be automatically updated.

How to Contribute

Contributions are welcome! Check out this link on how you can help!

Release History

MEDKIT's full release history can be found here.

Credits

License

Distributed under the MIT license. See the LICENSE file for more information.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL