Skip to main content

Simplify the usage of containers

Project description

MakIm

MakIm or just makim is based on make and focus on improve the way to define targets and dependencies. Instead of using the Makefile format, it uses yaml format.

The idea of this project is to offer a way to define targets and dependencies with some control options, like conditionals if.

It allows a very easy way to define texts for documentation and extra parameters for each target.

Features

  • Help text as first-class in the .makim.yaml specification. It can be used by targets and arguments.
  • Targets have an option for arguments.
  • Targets have an option for dependencies.
  • Dependencies can call a target with specific arguments.
  • Dependencies can have a conditional control flow (if).
  • Allow the creation of groups, so the targets can be organized by topics.
  • Targets and groups have an option for user defined variables and/or environment variables.
  • Access arguments, variables or environment variables via template (using Jinja2).
  • Option for using dot environment files using env-file key.

How to use it

First you need to place the config file .makim.yaml in the root of your project. This is an example of a configuration file:

version: 1.0.0
groups:
  - name: default
    env-file: .env
    targets:
      clean:
        help: Use this target to clean up temporary files
        args:
          all:
            type: bool
            action: store_true
            help: Remove all files that are tracked by git
        run: |
          echo "remove file X"
      build:
        help: Build the program
        args:
          clean:
            type: bool
            action: store_true
            help: if not set, the clean dependency will not be triggered.
        dependencies:
          - target: clean
            if: \${\{ args.clean == true \}\}
        run: |
          echo "build file x"
          echo "build file y"
          echo "build file z"

PS: in \${\{ args.clean == true \}\}, this \ is just for escaping it for the documentation here, you should use it with no escape \.

Some examples of how to use it:

  • run the build target: makim build

  • run the clean target: makim clean

  • run the build target with the clean flag: makim build --clean

The help menu for the .makim.yaml file would looks like this:

$ makim --help
usage: MakIm [--help] [--version] [--config-file MAKIM_FILE] [target]

MakIm is a tool that helps you to organize and simplify your helper commands.

positional arguments:
  target
    Specify the target command to be performed.
    Options are:
      default.clean => Use this target to clean up temporary files
        ARGS:
          --all: (bool) Remove all files that are tracked by git
      default.build => Build the program
        ARGS:
          --clean: (bool) if not set, the clean dependency will not be triggered.
    NOTE: 'default.' prefix is optional.

options:
  --help, -h
    Show the help menu
  --version
    Show the version of the installed MakIm tool.
  --config-file MAKIM_FILE
    Specify a custom location for the config file.

If you have any problem, open an issue at: https://github.com/osl-incubator/makim

As you can see, the help menu automatically adds information defined by all the help key, inside the .makim.yaml file.

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

makim-1.6.7.tar.gz (95.6 kB view details)

Uploaded Source

Built Distribution

makim-1.6.7-py3-none-any.whl (62.9 kB view details)

Uploaded Python 3

File details

Details for the file makim-1.6.7.tar.gz.

File metadata

  • Download URL: makim-1.6.7.tar.gz
  • Upload date:
  • Size: 95.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.8.1 Linux/5.15.0-1035-azure

File hashes

Hashes for makim-1.6.7.tar.gz
Algorithm Hash digest
SHA256 9f7782b2c0105e7b6080188eaa536378611cc0190bd4709519f7bd584e54d794
MD5 3389a732ca8aaa22106a5b39e0a814a8
BLAKE2b-256 1ec4288b8470c2dd47ef7df3beb632973369f0597c9d6495a516d1ca3907704d

See more details on using hashes here.

Provenance

File details

Details for the file makim-1.6.7-py3-none-any.whl.

File metadata

  • Download URL: makim-1.6.7-py3-none-any.whl
  • Upload date:
  • Size: 62.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.8.1 Linux/5.15.0-1035-azure

File hashes

Hashes for makim-1.6.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f2d4c01c174258fc2f6b976099f0fb9b131f47c6921f0f0b9a659ce0f7938f21
MD5 be921a0a5cc5b61b702a766e69f7fb55
BLAKE2b-256 d28e0df6a3d64abb2f4faceb4d387b0cca2019ef7cc481a9268c24118c21bc96

See more details on using hashes here.

Provenance

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