Live data from Hacker News

Dotfiles.github.com - A guide to dotfiles on GitHub

dotfiles.github.com

11–20 of 39 posts

Re: Dotfiles.github.com - A guide to dotfiles on GitHub

#11
post #4

I've meant to finally put my dotfiles into a repository but the one thing keeping me from it is that I haven't yet stumbled upon a script to symlink everything into it's place that I'm totally satisfied with. I don't use ruby and don't want to install rake on each machine for something that should be possible with a simple shell script, and didn't like the scripts I saw so far. Everything had a medium or large aspect…

I use homesick (which is written in Ruby) and I think I agree with you. I like the premise of having the repo in a subdirectory and symlinking the files in - I don't like to have the whole homedir in git - I only want certain things in the repo in the first place, not everything. Seems like the rest could be done in a shell script for maximum portability.

Re: Dotfiles.github.com - A guide to dotfiles on GitHub

#12
post #4

I've meant to finally put my dotfiles into a repository but the one thing keeping me from it is that I haven't yet stumbled upon a script to symlink everything into it's place that I'm totally satisfied with. I don't use ruby and don't want to install rake on each machine for something that should be possible with a simple shell script, and didn't like the scripts I saw so far. Everything had a medium or large aspect…

I use the dircombine perl script that has been used by Joey Hess since his first SVN home directory article was written. You can also look at the fixups scripts that uses dircombine to setup everything. It's simple and to the point.

http://git.kitenet.net/?p=joey/home.git;a=blob_plain;f=bin/d...

Re: Dotfiles.github.com - A guide to dotfiles on GitHub

#13
post #4

I've meant to finally put my dotfiles into a repository but the one thing keeping me from it is that I haven't yet stumbled upon a script to symlink everything into it's place that I'm totally satisfied with. I don't use ruby and don't want to install rake on each machine for something that should be possible with a simple shell script, and didn't like the scripts I saw so far. Everything had a medium or large aspect…

I've been using justone's dfm (dotfile manager) script[1]. The only requirement is PERL 5.8, which is just about everywhere, I think. Seems good enough so far, but I'm not sure how I'll integrate Oh-My-Zsh 2.0[2] yet. Maybe someone can compare it to homesick or do a PERL port...

[1] https://github.com/justone/dotfiles [2] https://github.com/sorin-ionescu/oh-my-zsh

Re: Dotfiles.github.com - A guide to dotfiles on GitHub

#14

While we're on the subject - has anyone found a good way to separate environments while keeping your setup fairly DRY? e.g. I have slight variations in my aliases for work/home, different git config email etc. You can find mine here: http://github.com/adamgibbins/dotfiles

I see you have a zshrc.local; that's the same approach I use. Unfortunately not everything supports "includes" but many, many things do.

If you want to see more, https://github.com/apinstein/dotfiles

I suppose another alternative might be having a private ".local" repo as a submodule, and having a rake task to concatenate and install the shared & local files. It is a tricky problem.

Re: Dotfiles.github.com - A guide to dotfiles on GitHub

#15

While we're on the subject - has anyone found a good way to separate environments while keeping your setup fairly DRY? e.g. I have slight variations in my aliases for work/home, different git config email etc. You can find mine here: http://github.com/adamgibbins/dotfiles

I see you have a zshrc.local; that's the same approach I use. Unfortunately not everything supports "includes" but many, many things do. If you want to see more, https://github.com/apinstein/dotfiles I suppose another alternative might be having a private ".local" repo as a submodule, and having a rake task to concatenate and install the shared & local files. It is a tricky problem.

My zshrc.local setup is rather poor and I need to find time to sort it out correctly - currently its effectively a clone of the standard grml setup (http://grml.org/zsh/).

Re: Dotfiles.github.com - A guide to dotfiles on GitHub

#16

While we're on the subject - has anyone found a good way to separate environments while keeping your setup fairly DRY? e.g. I have slight variations in my aliases for work/home, different git config email etc. You can find mine here: http://github.com/adamgibbins/dotfiles

I haven't done it yet, but I've been meaning to set up a very simple solution to this using a preprocessor (probably m4). I think wrapping a few blocks in if-statements based on the host name will go pretty far.

edit: might as well link my repo, which doesn't yet include that functionality: https://github.com/drewfrank/dotfiles

Re: Dotfiles.github.com - A guide to dotfiles on GitHub

#17

While we're on the subject - has anyone found a good way to separate environments while keeping your setup fairly DRY? e.g. I have slight variations in my aliases for work/home, different git config email etc. You can find mine here: http://github.com/adamgibbins/dotfiles

I haven't done it yet, but I've been meaning to set up a very simple solution to this using a preprocessor (probably m4). I think wrapping a few blocks in if-statements based on the host name will go pretty far. edit: might as well link my repo, which doesn't yet include that functionality: https://github.com/drewfrank/dotfiles

I've got a preprocessor (ruby) in my zsh dotfiles:

https://github.com/halostatue/dotfiles

I've been slowly moving toward a 'detect-and-configure' plug-in system that I'm quite happy with.

Re: Dotfiles.github.com - A guide to dotfiles on GitHub

#18
post #4

I've meant to finally put my dotfiles into a repository but the one thing keeping me from it is that I haven't yet stumbled upon a script to symlink everything into it's place that I'm totally satisfied with. I don't use ruby and don't want to install rake on each machine for something that should be possible with a simple shell script, and didn't like the scripts I saw so far. Everything had a medium or large aspect…

Your script can be pretty simple. E.G. Create symlinks when they don't exist and report errors if creating them would clobber something else:

    DOTFILES=$HOME/where/the/dotfiles/live/in/git
    for T in $DOTFILES/*; do
        TARGET=$(readlink -e $T)
        LINK_NAME=$($HOME/.$(basename $TARGET))
        # test if a file, working symlink, or broken symlink already exists
        if [ -e $LINK_NAME -o -L $LING_NAME ]; then
            CURRENT_TARGET=$(readlink -m $LINK_NAME)
            if [ $CURRENT_TARGET != $TARGET ]; then
                    echo "$LINK_NAME already exists and is really $CURRENT_TARGET"
            fi
        fi
        ln -s $TARGET $LINK_NAME
    done
Remove stale dotfile symlinks:

    for L in $(find $HOME -maxdepth 1 -type l -name '.*'); do
        if [ ! -e $L ]; then rm $L; fi
    done
This assumes you'll use git excludes to keep files you don't want out of your repository. E.G. if you don't want $HOME/.ssh/id_rsa in git then you'd have $DOTFILES/ssh/.gitignore with 'id_rsa' in it. If you try to manage your excludes through the linking you'll end up with a very ugly script like what I have at https://github.com/sciurus/dotfile_management

Re: Dotfiles.github.com - A guide to dotfiles on GitHub

#20

While we're on the subject - has anyone found a good way to separate environments while keeping your setup fairly DRY? e.g. I have slight variations in my aliases for work/home, different git config email etc. You can find mine here: http://github.com/adamgibbins/dotfiles

Towards that end, (and for keeping certain sensitive things from repos...) I made this: https://github.com/sophacles/dotfuse It is a fuse filesystem that allows for modularization of some "single file" style dotfiles. Combined with git branche or modules (or both) it can get a lot of this (i hope). Warning though, it is still a bit of a toy, and I haven't played with it for a while, but I'm open to suggestions and pu…

this is clever, thanks for sharing
Post reply on HN