dotbak 0.3.5

Manage and backup dotfiles with ease!
## System block diagram

```mermaid
flowchart LR
    user -- dotbak CLI --> dotbak["dotbak"]
    user -- Text editor --> dotfiles
    user -- Text editor --> conf
    dotbak <-- fs::read/write --> conf["Configuration"]
    dotbak -- libgit2/raw git CLI --> repo["Dotfile git repo"]
    dotfiles["Dotfiles"] <-- Symlink --> repo
```

## Sequence diagram

```mermaid
sequenceDiagram
    participant user as User
    participant dotbak as Dotbak
    participant dfiles as Dotfiles
    participant conf as Configuration
    participant repo as Dotfile Repository

    user ->> dotbak: dotbak init
    dotbak ->> conf: Create new configuration
    dotbak ->> repo: Create new dotfile repository <option: w/ origin url>
    dotbak ->> dfiles: Symlink initial files to repo
    dotbak ->> user: Report errors/success

    user ->> dotbak: dotbak add/rm
    dotbak ->> conf: Update configuration
    dotbak ->> dfiles: Move dotfiles to repo
    repo ->> dfiles: Symlink dotfiles out of repo
    dotbak ->> user: Report errors/success

    user ->> dotbak: dotbak pull
    dotbak ->> repo: git pull
    dotbak ->> user: Report git conflicts/etc.

    user ->> dotbak: dotbak push
    dotbak ->> repo: git commit
    dotbak ->> repo: git push
    dotbak ->> user: Report errors/success

    user ->> dotbak: dotbak git <opts...>
    dotbak ->> repo: git <opts...>
    dotbak ->> user: Report errors/success

    user ->> dotbak: dotbak deinit
    dotbak ->> repo: Move files to original locations
    dotbak ->> conf: Delete configuration
    dotbak ->> repo: Delete repo
    dotbak ->> user: Report errors/success
```