/fabsetup

Yet another setup script for linux software, configurations and services.

Primary LanguagePythonMIT LicenseMIT

Welcome to Fabsetup!

Set up and maintain configurations, software installations and other things on a local or remote linux system.

Source: https://github.com/theno/fabsetup

Documentation: https://fabsetup.readthedocs.io

Features:

  • Fabsetup's tasks do the things:

    • tasks execute commands commented and comprehensible
    • tasks produce output formatted in Markdown or HTML
    • run a task local or on a remote host
  • Addons:

    • only install the tasks you need
    • create Your own addon with Your task
  • The Command fabsetup, based on Fabric, is a pimped fab command with the same options and arguments. And some more:

    • Control markdown formatted output:

      • --hide-code-block
      • --hide-command-line
      • --hide-command-output
      • --hide-docstring
      • --hide-header
      • --hide-print
      • --unnumbered
      • --pandoc-add-toc
    • Write output to file:

      • --outfile
      • --pandoc-html-file
    • Control ANSI color codes:

      • --color-off
      • --color-keep
    • Control execution of commands:

      • --interactive
    • Load fabfiles and invoke tasks:

      • --load-fab
      • --load-inv
    • Show effective config:

      • --show-config
    • List known Fabsetup addons:

      • --known-addons
  • API:

Installation

Install fabsetup the same way like fabric, best via pip:

pip install fabsetup

Usage

Run task info:

fabsetup info

Important options:

# Show versions
fabsetup --version

# Help
fabsetup -h

# List tasks
fabsetup -l

# Show task help
fabsetup info --help
fabsetup new --help

Tab Completion

Invokes shell tab completion also works with fabsetup:

fabsetup -h | grep -A1 "completion"

Apply this simple setup of tab completion in bash:

echo 'source <(fabsetup --print-completion-script bash)' >> ~/.bashrc
source ~/.bashrc

Now You are able to "tab" through the available fabsetup tasks and options:

fabsetup --h<TAB><TAB>  ->  --help  --hide  --hosts
fabsetup --he<TAB>      ->  fabsetup --help
fabsetup --help i<TAB>  ->  fabsetup --help info

More features: Advanced Usage

Addons

Fabsetup itself only comes with two tasks, info and new. The tasks that "really do things" reside in separate fabsetup addons.

They will be installed the same way like fabsetup and fabric, best via pip. For example:

pip install fabsetup-theno-termdown

Now You are able to run the task theno.termdown. This task sets up termdown, locally or on a remote host:

# local
fabsetup theno.termdown

# remote
fabsetup -H user@host theno.termdown

More infos: Fabsetup Addons

Your Addon

Create Your own fabsetup addon doing great things! Start now:

fabsetup new

More infos: Create a Fabsetup Addon