Put the dotfiles and directories into git. Symlink from ~/.vim to ~/dotfiles/.vim and be done with it. (~/dotfiles would contain the git checkout of course).
Put the dotfiles and directories into git. Symlink from ~/.vim to ~/dotfiles/.vim and be done with it. (~/dotfiles would contain the git checkout of course).
But I wanted to symlink my Sublime settings. That meant tinkering with shell code and separating the files in different dirs. Then I wanted to preinstall my Brew apps, but only for Mac.
So these tasks pilled up in shell scripts and became ugly. So Ansible, with it's easy YAML configs, is the perfect tool for a dev like me that wants to setup machines and maintain the configurations synced.
stow * --target ~
With respect to ansible, I've been thinking of managing my laptop using just ansible to install new packages, and update configuration (apache, sshd and so on). Kinda like chef-solo, but using ansible. Has anyone done anything like that?Ansible can be used for your local machine without any central server by default. I use this[0] playbook to update my packages daily on my DigitalOcean machines.
[0]: https://github.com/palcu/dotfiles/blob/master/playbooks/task...
I have a ~/dotfiles directory in which I have one directory for each program/entity I want to manage using stow. Let's say I want to manage my GNOME keyrings and my settings for the program EasyStroke. My ~/dotfiles directory would look like this:
~/dotfiles
├── easystroke
│ └── .easystroke
│ ├── actions-0.5.6
│ └── preferences-0.5.5
└── keyrings
└── .local
└── share
└── keyrings
├── login.keyring
└── user.keystore
Then, in ~/dotfiles I can do "stow easystroke" and it will create ~/.easystroke and there it will symlink "actions-0.5.6" to ~/dotfiles/easystroke/.easystroke/
actions-0.5.6 and "preferences-0.5.5" to ~/dotfiles/easystroke/.easystroke/preferences-0.5.5 cp -sr ~/dotfiles/easystroke/.easystroke ~/ vim-powerlinefonts
├── .config
│ └── fontconfig
│ └── conf.d
│ └── 10-powerline-symbols.conf
└── .local
└── share
└── fonts
└── PowerlineSymbols.otf
I just do "stow vim-powerlinefonts" and it creates the directories and symlinks as needed.For your cp example I would have to do "cp -sr ..." twice and also think about missing directories in the tree, and possibly create them.
Could I say have stow manage separate or conflicting files?
An example is in order, say for work I have a .gitconfig that has a separate email address etc... and for home I have basically the same but not quite. Would there be any easy-ish way to say something akin to: ok this is the base of things, these are the generalized components that override?
I have a jacky way of doing this now but any way to eliminate the nonsense would be helpful. xstow looks interesting however.
$ cd ~/gittest
$ tree -a
~/gittest/
├── gitconfig-home
│ └── test
│ └── .gitconfig
└── gitconfig-work
└── test
└── .gitconfig
$ cat ~/gittest/gitconfig-home/test/.gitconfig
git config 1
$ cat ~/gittest/gitconfig-work/test/.gitconfig
git config 2
$ stow --no-folding --override='.+/.gitconfig' gitconfig-home
$ cat ~/test/.gitconfig
git config 1
$ stow --no-folding --override='.+/.gitconfig' gitconfig-work
$ cat ~/test/.gitconfig
git config 2
If you need to manage sections of files, take a look at dotdee[0] or update-dotdee[1][0] - https://launchpad.net/dotdee [1] - https://pypi.python.org/pypi/update-dotdee
Its not ideal but each difference is really an entire file. I worded my question poorly in that regard but i'll have a look at dotdee.
I'm somewhat tempted to just use m4 for generating the dot files for things that may change and doing a conf.d type setup that just lets me copy a fragment file into place then instantiate the file.