aboutsummaryrefslogtreecommitdiff
path: root/README.mdwn
blob: 3b79850d88835dbdbe6c46fb1d1f64eb46ad22c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Metadot: a dotfile management system
====================================

Inspired by https://github.com/holman/dotfiles

Instalation
-----------

Get the code:

    git clone --recursive git://URL/dotfiles.git .dotfiles

Then add .dotfiles folder to your path or replace your dotfiles with

    ~/.dotfiles/metadot load profile

A backup will be saved.

Usage
-----

List existing modules:

    metadot ls

Load a module:

    metadot load <module>

Load all modules:

    metadot load --all

Layout
------

- ~/.dotfiles: where all dotfiles modules are stored
- ~/.backups: backups of old config files
- ~/.custom: your custom configuration where you can override parameters

Module format
-------------

Modules rest at ~/.dotfiles/modules and can be git submodules. File format is:

    [path/]<name>[.dot][.link]

Which means files

- with a .link extension are linked at $HOME.
- with a .dot.link extension are converted to a dotfile: vimrc.dot.link is linked as ~/.vimrc.
- with other extensions are ignored.

Also,

- file structure is preserved: file apps/scripts.link is linked as $HOME/apps/scripts.
- nested structures are allowed: config.dot/awesome.link is linked as $HOME/.config/awesome

TODO
----

- Split: metadot, dotfiles and modules should be separate repositories.
- Profile: automatic $PATH inclusion for installed script repositories.
- Check if module is correctly installed.
- Track loaded modules.
- Module descriptions and dependencies.
- Module unloading and restoration.
- Integration with scripts project.
- More file types:
  - .sample: copied if no origin file exists
  - .sh: added to the profile
  - .mkdir: are simply created
  - .cp: are copied
  - .template: are copied and transformed according to environment or config variables