aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: decf499c1e27fe6779bbb8a4dbcf1d7d7d9b6d23 (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
79
80
81
82
83
84
85
86
Rhatto's locally-installed applications
=======================================

This repository hosts applications I keep installed locally inside my home
directory. Some of these applications also manages my configurations such as
dotfiles.

It is my starting point to keep all my configuration centralized in a single
versioned tree, so if I need to setup an account in a new machine -- be it
a server or personal computer -- I just need to clone this little thing and
run a couple commands to have my usual configuration ready to use.

If you don't like my config -- which might be the case as this kind of
stuff is so personal -- you still can use my approach to do the same
management with your own stuff.

Installation
------------

Get the code:

    git clone --recursive https://git.fluxo.info/rhatto/apps $HOME/apps

Then check the source integrity of the latest release:

    /usr/bin/git -C $HOME/apps verify-commit HEAD

Note that `/usr/bin/git` is called to avoid any other `git` wrappers or aliases
you might have available on your shell.

Inception
---------

To use a project distributed by this repository simply add it's folder into
your `$PATH`.

If you want to use all all my applications and dotfiles, replacing your
existing configuration with mine, simply run

    $HOME/apps/inception install --all --deps

Once installed locally, you can sincronize this config to a remote host using
rsync+ssh:

    inception deploy <hostname>

This commands uses rsync to send all contents of your `$HOME/apps` and
`$HOME/.dotfiles` to a remote server, so please do not add personal or
sensitive stuff in those places. Then it makes sure your dotfiles are properly
linked.

Updating
--------

You can fetch updates in this repository using

    inception fetch

This commands don't automatically update your working copy. Instead, it just
does a git fetch in the `remotes/origin` repository and display it's last
commit log including git signature.

You can check version differences using `inception version` and also standard
git commands such as `git-log(1)`. Once you're satisfied and want to apply
changes to the current working copy including updating and initializing
submodules, type

    inception merge

Folder structure
----------------

This repository also plays well with the following `$HOME` folder structure:

    apps: this repository
    code: other software projects
    data: media assets (git-annex and other repositories)
    file: other, non-software projects
    load: download area
    mail: maildir
    temp: temporary folder

Note the all folder names have:

* The same lenght so I get free alignment on lists.
* Lowercase characters to save typing.