Abandonement notice: this repo most likely will be abandoned in favor of my new nixos-config repo.
This repository contains a script that automates the installation of various applications and manages their respective dotfiles and configurations. Each application is housed in its own directory, which may have its specific installation script, a requirements file, and a symlinks file.
Example directory structure:
.
├── git
│ ├── files
│ ├── install.sh
├── fish
│ ├── files
│ ├── install.sh
│ ├── requirements.txt
│ └── symlinks.txt
├── hyper
│ ├── files
│ ├── install.sh
│ └── symlinks.txt
├── install.sh
└── Readme.md
Each application directory can contain:
files
: A directory with configurations specific to that application. May also contain any files required for installation.install.sh
: A script that manages the installation of the application.requirements.txt
: A list of other applications required to be installed prior to the current one. Each list entry should match the name of the app directory.symlinks.txt
: Specifies symlinks to be created.
Remember, none of these are obligatory.
git
fish
# SRC=DEST
$DIR/fish/files=$HOME/.config/fish
$DIR/fish/files/fish_history=$HOME/.local/share/fish/fish_history
Here, $DIR
refers to the main install.sh
script's current directory.
To utilize the main installation script, proceed as follows:
- To install a particular application:
./install.sh [application_name]
To install multiple apps concurrently:
./install.sh git fish
- If you only want to setup symlinks for an app, use (-l | --links) flag:
./install.sh -l [application_name]
- Should an application include a
requirements.txt
file, the installer will first confirm that all necessary apps have been installed before moving forward. symlinks.txt
is employed to generate symbolic links. Each entry in this file depicts a symlink in the formatsource=$DIR/... destination=$HOME/...
, with$DIR
representing the script's directory and$HOME
the user's home directory.