Golang Configuration and Revision Tracker
To make it easier to maintain your dotfiles across hosts ands platforms. It was built for use in tandem with git, but any SCM tool should suffice.
-
clone it
-
go build
-
copy to path
-
???
-
Profit
-
mkdir -p ~/src/dotfile_repo
or wherever you want your system config to live -
cd ~/src/dotfile_repo
-
git init
-
gocart repoInit
-
gocart platformSet $YOUR_OS_NAME
could be osx, debian, bsd... -
git add .gocart.json
-
git commit -m "started versioning my dotfiles with gocart and I got a raise at work"
-
git push
tell all your friends!
-
gocart configAdd -n vimrc -p ~/.vimrc
-
git add vimrc .gocart.json
-
git commit -m "tracking my vimrc with gocart, now I can run a 6 minute mile!"
-
gocart configDel vimrc
-
git add .gocart.json vimrc
-
commit -m "remove vimrc from gocart tracking, I stubbed my toe after I got up from my workspace"
Gocart works by copying your config files into your working directory, deleting the originals and replacing them with symlinks to the new copy. To remove a config from tracking, it does the reverse. When used inside of a git repository, you can version your personal configuration. You can also use Github or Gitlab to share your dotfiles across machines.
-
Version Json Schema
-
Setup detailed logging
-
Add command to install dotfiles system-wide after
git clone
-
Add nested
kubectl
style subcommands
I built this mainly as a project to learn Go
, and solve a marginally painful problem in my day-to-day work as a software engineer.
If you find this tool useful, please tell your friends, and consider submitting a feature request to the issue tracker, or opening a PR on an existing issue.