blob: f113170cd5491ea29a52dd32e293bad31b1f778a (
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
75
76
77
78
|
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
----
- Check if module is correctly installed.
- Track loaded modules.
- Make modules as git submodules.
- Module descriptions.
- Module unloading and restoration.
- Module dependency.
- 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
- Possible integrations
- https://github.com/lvv/git-prompt/
- http://titusd.co.uk/2010/03/09/show-your-git-branch-name-in-your-gnu-screen-status-line/
- http://unix.stackexchange.com/questions/28430/screen-status-bar-to-display-current-directory-for-zsh-bash-shell
|