Skip to content

Latest commit

 

History

History
64 lines (47 loc) · 2.45 KB

README.md

File metadata and controls

64 lines (47 loc) · 2.45 KB

📋 Dotful

Dotfiles manager written in POSIX shell

Stars Issues Repo Size

 

It is a single script that only depends on ls, ln, cp and mkdir, which are basic core utilities. It manages dotfiles through profiles, which are directories that store the actual dotfiles. There is a local database (plain text file) that stores each entry's destination, alias and their parent profile.

Usage

# this command provides you with everything you need to know
$ dotful --help

But the short TL;DR is:

$ dotful add my_file  # adds 'my_file' to the default profile
$ dotful install     # installs the entire profile
$ dotful status      # checks the status of each file in the profile and their destinations

The tool may be configured through either environment variables or CLI options.

 

Bootstrapping

The following one-liner will download dotful and install it under /usr/local/bin (requires sudo privileges):

sudo curl -L https://raw.githubusercontent.com/pocco81/dotful/main/dotful -o /usr/local/bin/dotful && sudo chmod +x /usr/local/bin/dotful

Note: to uninstall it just run sudo rm /usr/local/bin/dotful

 

Development and Testing

Feel free to git clone https://github.com/pocco81/dotful.git. There is a makefile that provides the following targets:

  1. install: installs dotful under $(BIN).
  2. uninstall: removes $(BIN)/dotful.
  3. playground: creates a safe testing environment inside of $(PL) and provides instructions on how to use dotful within it.

Default parameters:

  • BIN = /usr/local/bin
  • PL = /tmp/_home