All Projects → magefile → Mage

magefile / Mage

Licence: apache-2.0
Mage is a make-like build tool using Go. You write plain-old go functions, and Mage automatically uses them as Makefile-like runnable targets.

Programming Languages

go
31211 projects - #10 most used programming language
HTML
75241 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Mage

Make Handbook
Handbook about modern make usage
Stars: ✭ 85 (-96.94%)
Mutual labels:  make
Make Novice
Automation and Make
Stars: ✭ 122 (-95.6%)
Mutual labels:  make
Foy
A simple, light-weight and modern task runner for general purpose.
Stars: ✭ 157 (-94.34%)
Mutual labels:  make
Hmake
HyperMake - Makes Builds Green without Worrying about Pre-requisites
Stars: ✭ 95 (-96.58%)
Mutual labels:  make
Generators
Laravel File Generators with config and publishable stubs
Stars: ✭ 102 (-96.32%)
Mutual labels:  make
Arduino Cmake Ng
CMake-Based framework for Arduino platforms
Stars: ✭ 123 (-95.57%)
Mutual labels:  make
Sake Core
Sake's core interface.
Stars: ✭ 78 (-97.19%)
Mutual labels:  make
Neph
A modern command line job processor, similar with make command
Stars: ✭ 174 (-93.73%)
Mutual labels:  make
Walk
A fast, general purpose, graph based build and task execution utility.
Stars: ✭ 108 (-96.11%)
Mutual labels:  make
Terraform Makefile
Helps me actually use terraform for multiple environments
Stars: ✭ 143 (-94.84%)
Mutual labels:  make
Gomk
An opinionated Makefile for Go projects.
Stars: ✭ 96 (-96.54%)
Mutual labels:  make
Cookiecutter Lux Python
Cookiecutter template for an idiomatic Python project driven by Makefile
Stars: ✭ 102 (-96.32%)
Mutual labels:  make
Fate
Fate is a modern science chinese name create tool.
Stars: ✭ 1 (-99.96%)
Mutual labels:  make
Asyncrun.vim
🚀 Run Async Shell Commands in Vim 8.0 / NeoVim and Output to the Quickfix Window !!
Stars: ✭ 1,332 (-51.98%)
Mutual labels:  make
Teachingmaterial
Various teaching material
Stars: ✭ 159 (-94.27%)
Mutual labels:  make
Make Docker Command
Seamlessly execute commands (composer, bower, compass) in isolation using docker and make.
Stars: ✭ 82 (-97.04%)
Mutual labels:  make
Mmake
Mmake is a small program which wraps make to provide additional functionality, such as user-friendly help output, remote includes, and eventually more. It otherwise acts as a pass-through to standard make.
Stars: ✭ 1,593 (-42.57%)
Mutual labels:  make
Zeus
An Electrifying Build System
Stars: ✭ 176 (-93.66%)
Mutual labels:  make
Intellij Makefile
Makefile support for IntelliJ-based IDEs
Stars: ✭ 164 (-94.09%)
Mutual labels:  make
Reggae
Build system in D, Python, Ruby, Javascript or Lua
Stars: ✭ 141 (-94.92%)
Mutual labels:  make

Built with Mage Build Status Build status

About

Mage is a make-like build tool using Go. You write plain-old go functions, and Mage automatically uses them as Makefile-like runnable targets.

Installation

Mage has no dependencies outside the Go standard library, and builds with Go 1.7 and above (possibly even lower versions, but they're not regularly tested).

Using GOPATH

go get -u -d github.com/magefile/mage
cd $GOPATH/src/github.com/magefile/mage
go run bootstrap.go

Using Go Modules

git clone https://github.com/magefile/mage
cd mage
go run bootstrap.go

This will download the code and then run the bootstrap script to build mage with version infomation embedded in it. A normal go get (without -d) or go install will build the binary correctly, but no version info will be embedded. If you've done this, no worries, just go to $GOPATH/src/github.com/magefile/mage and run mage install or go run bootstrap.go and a new binary will be created with the correct version information.

The mage binary will be created in your $GOPATH/bin directory.

You may also install a binary release from our releases page.

Demo

Mage Demo

Discussion

Join the #mage channel on gophers slack or post on the magefile google group for discussion of usage, development, etc.

Documentation

see magefile.org for full docs

see godoc.org/github.com/magefile/mage/mage for how to use mage as a library.

Why?

Makefiles are hard to read and hard to write. Mostly because makefiles are essentially fancy bash scripts with significant white space and additional make-related syntax.

Mage lets you have multiple magefiles, name your magefiles whatever you want, and they're easy to customize for multiple operating systems. Mage has no dependencies (aside from go) and runs just fine on all major operating systems, whereas make generally uses bash which is not well supported on Windows. Go is superior to bash for any non-trivial task involving branching, looping, anything that's not just straight line execution of commands. And if your project is written in Go, why introduce another language as idiosyncratic as bash? Why not use the language your contributors are already comfortable with?

Thanks

If you use mage and like it, or any of my other software, and you'd like to show your appreciation, you can do so on my patreon:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].