Como devo mudar automaticamente o meu .zshrc para um SO diferente?

3

Atualmente, estou armazenando a maioria dos meus dotfiles em um repositório git para facilitar a sincronização em todos os meus computadores. Eu adquiri recentemente um Macbook então agora tenho que ter todos os meus dotfiles suportando as diferenças entre o Linux e o Darwin. A primeira incompatibilidade que eu encontrei é o código de cores ls , no Linux este é o sinalizador --color=auto e para Darwin é -G .

Minha primeira tentativa de criar meu .zshrc portable é fazer o seguinte:

case 'uname' in
  Darwin)
    alias ls='ls -FG'
    ;;
  Linux)
    alias ls='ls -F --color=auto'
    ;;
esac

Depois que eu encontrar mais algumas coisas para mudar, provavelmente irei extrair o material específico do computador para separar arquivos para mantê-lo um pouco mais limpo. O que eu estou principalmente querendo saber é se existe uma maneira melhor de fazer isso além de usar 'uname' para determinar quais coisas executar.

    
por Nemo157 09.02.2011 / 01:48

1 resposta

4

Eu costumava usar esse mecanismo:

envfile="$HOME/.bash/os.'uname'.sh"
if [ -r $envfile ]; then
    . $envfile
fi
envfile="$HOME/.bash/host.'uname -n'.sh"
if [ -r $envfile ]; then
    . $envfile
fi

Então eu poderia rsync o diretório .bash para cada máquina conforme necessário para manter tudo atualizado.

    
por 09.02.2011 / 01:58

Tags