# sadedot
Backup all your dotfiles (and easily deploy them on another machine).
## Table of contents
- [Installation ](#installation-)
- [Usage ](#usage-)
- [Optional dependencies ](#optdependencies-)
- [Updating ](#updating-)
- [Contributing ](#contributing-)
- [License ](#license-)
## Installation
This repo is supposed to be used as a submodule. So, if you already have a git repo with your dotfiles:
```bash
git submodule add git@github.com:santilococo/sadedot.git
git submodule update --init
```
And if you don't, you can [fork][1] my dotfiles repo on github.
## Usage
You have to move all your dotfiles to a dotfiles folder (check [my repo][3] for an example) and then the script will do the symbolic links. Doing it this way, you can now upload them to your repository (to have a backup of them).
You should note that all these dotfiles (files or folders) will be symlinked in `$HOME`. So, if you want to symlink, for example, something in `/etc`, you have to put it in the `dotfiles/other` folder. Here you have to be careful as they will be installed in `/`. You can see an example [here][2].
So, to run the script:
```bash
sh scripts/bootstrap.sh
```
By default the script will run with whiptail (`libnewt`).
However, the script can use both `dialog` and `whiptail` as a way to display dialog boxes, so if you want to use dialog you have to pass `-d` as a parameter.
For example, you can run
```bash
sh scripts/bootstrap.sh -d
```
to use dialog.
Also, for compatibility reasons, the script will choose not to use the `dialog` or `whiptail` if you don't have them installed. You can force this using the `-t` parameter.
Finally, you can run the script with `-l` if you want to print the log in the `sadedot.log` file.
Note that you can modify the `scripts/install.sh` if you want to install some programs on your machine when this script is run. By default, `scripts/bootstrap.sh` will not run this script, so you will need to use the `-p` flag if you want it to run `scripts/install.sh` (it will run at the end of the `scripts/bootstrap.sh` script).
## Optional dependencies
You can install `libnewt` or `dialog` for a better experience, but they are not required.
## Updating
To keep the submodule up to date, you need to run
```bash
git submodule foreach git pull
```
## Contributing
PRs are welcome.
## License
[MIT](https://raw.githubusercontent.com/santilococo/sadedot/master/LICENSE.md)
[1]: https://github.com/santilococo/dotfiles/fork
[2]: https://github.com/santilococo/dotfiles/tree/master/dotfiles/other
[3]: https://github.com/santilococo/dotfiles