Simplify the usage of containers
Project description
Get Started
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.
- License: BSD 3 Clause
- Documentation: https://osl-incubator.github.io/makim
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:
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: {% raw %}${{ args.clean == true }}{% endraw %}
run: |
echo "build file x"
echo "build file y"
echo "build file z"
Some examples of how to use it:
-
run the
build
target:makim build
-
run the
clean
target:makim clean
-
run the
build
target with theclean
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:
--------
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.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file makim-1.15.0.tar.gz
.
File metadata
- Download URL: makim-1.15.0.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.11.8 Linux/6.5.0-1016-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1eb5a1abdfb24b589e66342d69c0b6ea14fd0a44face3aeb34b7784c33d7eda8 |
|
MD5 | b3e361e21a4008098fa81374fcafeec5 |
|
BLAKE2b-256 | 16c214256d4a8f3c04977fcee224fb4f7b0aa70376036d8b33b78652791784e1 |
Provenance
File details
Details for the file makim-1.15.0-py3-none-any.whl
.
File metadata
- Download URL: makim-1.15.0-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.11.8 Linux/6.5.0-1016-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01397559a6d58c0f9261d61e308e8bf177755b6a34e6b104bf18ed05a068d432 |
|
MD5 | 5f4c174db6daf81c27a794b37c603731 |
|
BLAKE2b-256 | 6878f26c5bf16cffa8f054b6bb9f2c82aca018ac55af0a0bc66dcd9c8761fea5 |