4 ms·
Sounds interesting. Could you explain a bit more how this works, briefly? I find the GNU stow page not really good to understand and lack some example of how it
by buster 12y ago
Sounds interesting. Could you explain a bit more how this works, briefly? I find the GNU stow page not really good to understand and lack some example of how it would be used...
- captn3m0 12y agoI recently shifted to stow as well. You can see my configuration on github[0]. [0]: http://github.com/captn3m0/dotfiles http://github.com/captn3m0/dotfiles
- shock 12y agoSure, I use a pretty simple setup: 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
- icebraining 12y agoWhat's the advantage over doing (assuming GNU cp): cp -sr ~/dotfiles/easystroke/.easystroke ~/
- shock 12y agoStow can handle multiple directories in one go. For my powerline config: 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.
- mitchty 12y agoQuestion on stow that you might have knowledge on. 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.
- shock 12y agoStow can do that if you only need files to be replaced, not sections of files. Let's say you want to manage the file ~/test/.gitconfig, you can create this structure: $ 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 https://launchpad.net/dotdee [1] - https://pypi.python.org/pypi/update-dotdee https://pypi.python.org/pypi/update-dotdee
- mitchty 12y agoThat helps thanks. So note for now I just copy/update my entire gitconfig and replace the one off changes every so often. 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.