RSD - Rhatto Software Distribution ================================== _A repository with 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. In other words... this is where everything begins. The way I bootstrap my whole digital environment across machines along with tools that helps me manage my computing machinery. The metaproject, the mother of all my folder structure that unfolds from here. If you don't like my config -- which might be the case as this kind of thing is so personal -- you still can use my approach to do the same management with your own stuff. In that case, fork this repository and replace my setup with your own submodules, dotfiles and inception procedure :) 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 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.