Skip to content

kaiserthe13th/makeup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MakeUp 💄

Build your projects with ease and style🎨!

WARNING: This project is at very experimental stages.

MakeUp is an easy to use language agnostic build tool inspired by the likes of make, CMake, SCons intended to be easy to use while retaining high customizability.

Getting Started âš¡

  1. Install makeup 🚀
$ pip install pymakeup
or
$ poetry add pymakeup

Not yet, for now do:
$ git clone https://github.com/kaiserthe13th/makeup.git
$ cd makeup
$ pip install .
  1. Start a new project 📜
$ makeup --new [your_project]
or
$ makeup --init
  1. Create a task 🎮
from typing import Union
from functools import reduce

@task()
def add(*args: Union[int, float]):
    print(reduce(lambda x, y: x + y, args, 0))
  1. Use it as you please
$ makeup add 2 2
4
$ makeup add 1.2 2.4
3.6

Features 🎯

  • Make style task creation and execution, with the programmatic capabilities of Python
  • Much more versatile, not just a build tool, but also a task runner
  • Tasks with defaults, arguments and keyword arguments in the command line
  • Just write what type you want, it will be validated and processed for you
  • Easy access the environment (with .env support)

💡 Philosophy

I've always liked make, CMake and SCons. However I always had my frustrations with them. CMake and Scons are complicated and have steep learning curves. And CMake isn't versatile. make while more versatile isn't so much when it is a pain to do if-elses, it can't take arguments without workarounds. It is too simple.

As a solution to all of this, I started developing a middle ground. One that will be easy to learn, yet capable. A system taking advantage of the capabilities of Python and able to realize the effectiveness of type annotations.

About

Build your projects with ease and style🎨!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages