fast-installer

make fast install configurations using config file:

Image

Install

pip3 install fast-installer

Usage

cli:

fastinstall  # this will run current directory config.yaml file.

to install all steps:

fastinstall -a

for more:

fastinstall -h

config file

Example

options:
  - description: "Zsh configurations"
    key: zsh
    steps:
      - description: "Linking files"
        links:
          ~/.zshrc.d: assets/zsh/zshrc.d/
          ~/.zshrc: assets/zsh/zshrc
        shell:
          - echo "test"
          - command: ls not_exists
            allow_fail: true
          - command: tail -f /dev/null
            allow_fail: true
            timeout: 1  # 1 seconds           

Structure

Key Type Is Required Comments
options list yes list of options

option

a dictionary with the following keys:

Key Type Is Required Comments
description string yes
key string yes
steps list yes list of steps

The steps will be run from the first to the last.

step

a dictionary with the following keys:

Key Type Is Required Comments
description string yes
links dictionary no make a soft link
shell dictionary/string no execute shell command

links

a dictionary where the key is the dest soft link location and value is the source location.

Example
links:
  ~/.zshrc.d: assets/zsh/zshrc.d/

shell

execute a shell command. can be either a string (which is the shell command to be executed). or a dictionary:

Key Type Is Required Comments
command string yes command to be executed
allow_fail bool no allow command to fail - default True
timeout int no timeout for the command - default 10 seconds