Skip to main content

Library and CLI for generating installation instructions from json schema and jinja templates.

Project description

installation-instruction

Library and CLI for generating installation instructions from json schema and jinja templates.

GitHub License PyPI - Version Documentation Status codecov FOSSA Status

Installation

pipx

pipx install installation-instruction

pip

python -m pip install installation-instruction

installation-instruction

(Don't try at home.)

name: installation-instruction
type: object
properties:
  method:
    enum:
      - pipx
      - pip
----------------------------------
{% if method == "pip" %}
  python -m pip
{% else %}
  pipx
{% endif %}
  install installation-instruction

CLI Usage

Usage: ibi [OPTIONS] COMMAND [ARGS]...

  Library and CLI for generating installation instructions from json schema
  and jinja templates.

Options:
  --version   Show the version and exit.
  -h, --help  Show this message and exit.

Commands:
  install  Installs with config and parameters given.
  show     Shows installation instructions for your specified config file...

Options are dynamically created with the schema part of the config file.

[!TIP] Show help for a config file with: ibi show CONFIG_FILE/FOLDER/GIT_REPO_URL --help.

Config

  • The config is comprised of a single file install.cfg.
  • The config has two parts delimited by ------ (6 or more -).
  • Both parts should be developed in different files for language server support.

Schema

  • The first section of the config is a json-schema.
  • It can be written in JSON or to JSON capabilites restricted YAML.
  • When creating a schema use the following schema draft version: https://json-schema.org/draft/2020-12/schema
  • title are used for pretty print option names.
  • description is used for the options help message.
  • For adding a description and a pretty print name to enum values (for web-installation-instruction):
    1. Indent the schema with the key schema.
    2. Add pretty and description keys.
    3. Create lists like key: Pretty Key.
  • title and description from within the schema overwrite pretty and description outside of the schema.
  • For the package to set the default os to the running system, name the property __os__.
schema:
  name: installation-instruction
  type: object
  properties:
    method:
      enum:
        - pipx
        - pip
pretty:
  pipx: Pipx
  pip: Pip
description:
  pipx: Installs python packages into virtual environments.
  pip: Standard python package manager.

Template

  • You can have as much whitespace and line breaks as you wish in and inbetween your commands.
  • Commands must be seperated by &&! (pip install installation-instruction && pip uninstall installation-instruction.)
  • If you wish to stop the render from within the template you can use the macro raise. ({{ raise("no support!") }}.)

MISC

Please have a look at the examples.

Development installation

If you want to contribute to the development of installation_instruction, we recommend the following editable installation from this repository:

python -m pip install --editable .[tests]

Having done so, the test suite can be run using pytest:

python -m pytest

Contributors

Acknowledgments

This repository was set up using the SSC Cookiecutter for Python Packages.

License Scan

FOSSA Status

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

installation_instruction-0.4.0.tar.gz (16.8 kB view details)

Uploaded Source

File details

Details for the file installation_instruction-0.4.0.tar.gz.

File metadata

File hashes

Hashes for installation_instruction-0.4.0.tar.gz
Algorithm Hash digest
SHA256 010898185d5f811b53c2733ca8831d7d2b190aa92a9afecb1432dd885f9541bd
MD5 a804ecfa71ca94e31036574315d99bdc
BLAKE2b-256 eea297954f46e9af761279741e2aca4884a97460131d14b43ed6943d644f0923

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page