LSD - Lightweight 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 infection 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. To use a project distributed by this repository simply add it's folder into your `$PATH`. infection --------- **WARNING:** running `infection` might replace your existing configuration with my defaults. You probably don't want to do that, except if you like my config. If you just want to use my scripts, skip the rest of this file. If you want to use `infection` with your own config, feel free to change things the way it best fits your taste. If you want to use all all my applications and dotfiles, replacing your existing configuration with mine, simply run $HOME/apps/infection install --all --deps Once installed locally, you can sincronize this config to a remote host using rsync+ssh: infection 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 infection 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 `infection 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 infection 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 that all folder names have: * The same lenght so I get free alignment on lists. * Lowercase characters to save typing.