Requiere de stow. Todo directorio iniciando con un @ es ignorado por
stow, y esta reservado para el uso de dotfiles.
-
Clonar el repositorio a
~/dotfiles -
Instalar el script
dotfilesen$PATH -
Agregar el auto completado del script al
bashrcsource ~/dotfiles/dotfiles-completion.bash
-
Agregar los hooks de git:
git config core.hooksPath @git-hooks/
Nota: Es importante que el paquete vaya antes que otros argumentos para stow.
dotfiles stow <paquete> --argumentosNota: Es importante que el paquete vaya antes que otros argumentos para stow.
dotfiles unstow <paquete> --argumentosdotfiles git <git-cmd>En dotfiles se crea el paquete (Usare bash como ejemplo):
cd ~/dotfiles
mkdir bash
Dentro del paquete usamos touch para únicamente crear los archivos en sus
lugares relativos:
cd bash
touch .bash_aliases
Y luego instalamos el paquete con la opción --adopt
Nota: Para directorios completos, se puede usar la opción --parents de
cp. (Ejemplo con la configuración de synth-shell)
cp .config/synth-shell/ dotfiles/synth-shell/ --parents -r
Los hooks se encuentran dentro de la carpeta @hooks.
Pueden ser de los siguientes tipos:
pre-stow: Se ejecuta antes de instalar el paquetepost-stow: Se ejecuta después de instalar el paquetepre-unstow: Se ejecuta antes de remover el paquetepost-unstow: Se ejecuta después de remover el paquete
Estos se agruparan dentro de la carpeta @hooks/<paquete>. Cada hook tiene que
llamarse igual que el tipo de hook.
Todos los scripts pueden asumir que se encuentran en la carpeta $HOME, y que
la variable $DOTFILES_CONFIG_DIR contiene una carpeta a la que se puede
escribir, en la que podrán guardar archivos de configuración necesarios para
correr otros hooks.
Los paquetes pueden tener dependencias, las cuales se instalaran antes de el
paquete en si. Estas se especifican en el archivo paquete/@depends, un
paquete por linea.
No hay ningun chequeo de dependencias ciclicas, por lo que es responsabilidad del usuario evitarlas.
Para cambiar las configuraciones de una maquina a otra, se puede usar el siguiente comando:
dotfiles branch-outEste comando creara una rama con el hostname de la maquina actual. Luego se puede usar el comando:
dotfiles pull-masterPara traer los cambios de la rama master a la rama del hostname.