You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Marcus 5df764bb98 clean up repo
remove some old things like Dockerfile and sandbox/clean scripts, not being used for development
1 year ago
.github/workflows Work (#13) 2 years ago
cmd update add command to link files automatically and deal with relative paths 1 year ago
test apply go formatting (#41) 1 year ago
tools apply go formatting (#41) 1 year ago
.gitignore add goreleaser config, update README (#21) 2 years ago
.goreleaser.yaml add goreleaser config, update README (#21) 2 years ago
.pre-commit-config.yaml adding gitleaks pre commit hook (#22) 2 years ago
LICENSE add license and readme 2 years ago
Makefile clean up repo 1 year ago
README.md clean up repo 1 year ago
go.mod update status (#40) 1 year ago
go.sum add versioning to command (#36) 1 year ago
main.go apply go formatting (#41) 1 year ago

README.md

Dotctl

dotfile management

About

Dotctl is a tool to help you easily manage your dotfiles and sync them across separate machines using git. It creates a dotfiles subdirectory in the user's $HOME and provides simple commands to add and symlink config files/directories to the central dotfiles directory.

Installation

Build From Source

Prerequisites

clone the repo and run script to build binary and copy it to your path

git clone https://github.com/Marcusk19/dotctl.git
cd dotctl
make install

Usage

# init sets up the config file and directory to hold all dotfiles
dotctl init
# add a config directory for dotctl to track
dotctl add ~/.config/nvim
# create symlinks
dotctl link

Syncing to git

Warning: using the sync command can have some unexpected behavior, currently the recommendation is to manually track the dotfiles with git

dotctl comes with a sync command that performs the following operations for the dotfiles directory:

  1. pulls changes from configured upstream git repo
  2. commits and pushes any changes detected in the dotfile repo

set the upstream repo using the -r flag or manually edit the config at $HOME/dotfiles/dotctl/config.yaml

example usage:

dotctl sync -r https://github.com/example/dotfiles.git