Giter VIP home page Giter VIP logo

magex's Introduction

Magefile Extensions

test

This library provides helper methods to use with mage.

Below is a sample of the type of helpers available. Full examples and documentation is on godoc.

// +build mage

package main

import (
	"github.com/carolynvs/magex/pkg"
	"github.com/carolynvs/magex/shx"
)

// Check if packr2 is in the bin/ directory and is at least v2.
// If not, install [email protected] into bin/
func EnsurePackr2() error {
	opts := pkg.EnsurePackageOptions{
		Name: "github.com/gobuffalo/packr/v2/packr2",
		DefaultVersion: "v2.8.0",
		VersionCommand: "version",
		Destination: "bin",
    }
   return pkg.EnsurePackageWith(opts)
}

// Install mage if it's not available, and ensure it's in PATH. We don't care which version
func Mage() error {
    return pkg.EnsureMage("")
}

// Run a docker registry in a container. Do not print stdout and only print
// stderr when the command fails even when -v is set.
//
// Useful for commands that you only care about when it fails, keeping unhelpful
// output out of your logs.
func StartRegistry() error {
    return shx.RunE("docker", "run", "-d", "-p", "5000:5000", "--name", "registry", "registry:2")
}

// Use go to download a tool, build and install it manually so 
// that it has version information embedded in the final binary.
func CustomInstallTool() error {
	err := shx.RunE("go", "get", "-u", "github.com/magefile/mage")
	if err != nil {
    		return err
	}
    
	src := filepath.Join(GOPATH(), "src/github.com/magefile/mage")
	return shx.Command("go", "run", "bootstrap.go").In(src).RunE()
}

magex's People

Contributors

carolynvs avatar saschagrunert avatar carolynvs-msft avatar omarkohl avatar vinozzz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.