diff --git a/Tips-and-Tricks.md b/Tips-and-Tricks.md index 53f2e1c..e30b8a6 100644 --- a/Tips-and-Tricks.md +++ b/Tips-and-Tricks.md @@ -1,14 +1,21 @@ -# How can I have different groups of tasks for different hosts with different configurations? +## Table of Contents -## Simple setup +- [How can I have different groups of tasks for different hosts with different configurations?](#how-can-i-have-different-groups-of-tasks-for-different-hosts-with-different-configurations) +- [Automatically install or update dotfiles when ssh'ing into a remote machine (or: let my dotfiles follow me)](#automatically-install-or-update-dotfiles-when-sshing-into-a-remote-machine-or-let-my-dotfiles-follow-me) +- [Bring Your Own Userspace (BYOU)](bring-your-own-userspace-byou) +- [Automatically update your Dotbot config file when you add files in Git](#automatically-update-your-dotbot-config-file-when-you-add-files-in-git) + +## How can I have different groups of tasks for different hosts with different configurations? + +### Simple setup See [here](https://github.com/anishathalye/dotbot/pull/11#issuecomment-73082152) for information on using machine-specific configs. -## More advanced setup +### More advanced setup If you want to install programs independently from a general configuration file, the following setup might be for you. An advanced quickstart can be found at the [ecarlson94/dotbot-template Wiki](https://github.com/ecarlson94/dotbot-template/wiki/Dotfiles-Repository). -### Configurations +#### Configurations Write a configuration file for each program and put them together in a directory: ``` meta/configs/ @@ -19,7 +26,7 @@ meta/configs/ ``` Then add a basic configuration file (i.e. for cleaning up) at `meta/base.yaml`. -### Profiles +#### Profiles Then summarize these configurations in profiles: ``` meta/profiles/ @@ -29,10 +36,10 @@ meta/profiles/ ``` In a profile you specify the configurations you want to install (one per line, without `.yaml`). -### New `install` scripts +#### New `install` scripts Then replace the `install` script with the following ones: -#### `install-profile` +##### `install-profile` ```bash #!/usr/bin/env bash @@ -81,7 +88,7 @@ done cd "${BASE_DIR}" ``` -#### `install-standalone` +##### `install-standalone` ```bash #!/usr/bin/env bash @@ -144,7 +151,7 @@ If you have any open questions or something is unclear, you can try to take a lo * [magicmonty/dotfiles_dotbot](https://github.com/magicmonty/dotfiles_dotbot) * [vbriand/dotfiles](https://github.com/vbriand/dotfiles) -# Automatically install or update dotfiles when ssh'ing into a remote machine (or: let my dotfiles follow me) +## Automatically install or update dotfiles when ssh'ing into a remote machine (or: let my dotfiles follow me) Original inspiration: http://klaig.blogspot.co.at/2013/04/make-your-dotfiles-follow-you.html @@ -189,7 +196,7 @@ Obviously this `LocalCommand` is executed every time you connect to the remote m This works best if you use public key authentication (or GSSAPI/Kerberos authentication) so SSH doesn't ask for a password when logging in. If you do use password authentication then you will need to enter your password once for each of the two SSH connections. -# Bring Your Own Userspace (BYOU) +## Bring Your Own Userspace (BYOU) Want to run your development environment in a docker container? Learn about Bring Your Own Userspace (BYOU) by following this [tutorial](https://github.com/ecarlson94/dotbot-template/wiki/Bring-Your-Own-Userspace-(BYOU))! @@ -201,7 +208,7 @@ Here is a quick explanation of benefits: - Most of our userspace dependency management is moved to alpine linux - Except for a few things, we don't need to maintain userspace dependency installation across multiple operating systems -# Automatically update your Dotbot config file when you add files in Git +## Automatically update your Dotbot config file when you add files in Git You can use this tool (implemented as a Git pre-commit hook) to automatically update Dotbot's config file when adding files in Git: https://github.com/gwerbin/dotbot-autobot.