Coder Social home page Coder Social logo

ironman's Introduction

Ironman logo

Ironman

Build Status Build status GoDoc Go Report Card

Ironman is CLI tool that provides a way to define and share project templates hosted in git repositories. Install and generate a new document based project using Ironman Templates in seconds.

Features

  • Develop Ironman based templates.
  • Manage local Ironman templates from remote sources (install, uninstall, upgrade) (git repositories)
  • Generate new projects based on ironman you or someone else created.

Motivation

You are about to start a new project, with a common project structure, and few dozens of files. Every time you have to change titles/subtitles, app identifiers, docs URL’s to get started. If you work with one or more teams, how do you enforce common standards?. This is a repetitive task, how would you solve it?

An option is a git repo, everyone can clone their own copy and make the necessary to adapt it to their needs. From my experience that can lead to people not knowing the changes, they need to do to get a custom “correct” project. Also, outdated templates no one knows they even exist.

Here comes the hero

Ironman provides a declarative framework for you to define Ironman Templates. You can host Ironman templates in a git repository.

Ironman Templates can be managed (installed, upgraded, removed) using the Ironman CLI. With an installed template you can generate new projects many times as you want in a repetitive and reliable way. Share a template using a standard git URL.

Install

Binary download is available for the following OS's

  • Linux
  • OSX
  • Windows

Download your specific binary from tar file from the releases page

Unpack the binary and add it to your PATH.

Verify

$ ironman version
Ironman v0.1.1-5d02c19 Build date: 20180411.034900

Run ironman help or ironman help <command> to get help about more commands.

Docs

ironman's People

Contributors

gepser avatar ottogiron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

wvides

ironman's Issues

When there is an error in a template ironman won't tell where

How to replicate
Write a variable with escaped quotes and run the generator

Sample
{{.Values.api_name | default \"rest-express-mongo\"}}

Log without the detail of the file with the syntax error

There was an error failed to parse template template: ironman:3: unexpected "\\" in operand : template: ironman:3: unexpected "\\" in operand

Acceptance test randomly failing

Acceptance tests randomly failing when creating a new directory when running the generate command.

  Scenario: Generate a template with correct ID                                                               # acceptance/features/generate.feature:7
    Given A template to generate installed with URL "https://github.com/ironman-project/template-example.git" # generate.go:19 -> /acceptance.aTemplateToGenerateInstalledWithURL
    When Generate runs with ID "template-example" generator ID "app" and flags "foo=bar,bar=foo"              # generate.go:28 -> /acceptance.generateRunsWithIDGeneratorIDAndFlags
    Then The generate process state should be success                                                         # generate.go:34 -> /acceptance.theGenerateProcessStateShouldBeSuccess
    Generate command did not succeeded Running template generator app
Writing... /home/travis/.ironman_test/test/.env
Writing... /home/travis/.ironman_test/test/README.md
Writing... /home/travis/.ironman_test/test/foobar
Writing... /home/travis/.ironman_test/test/teams.html
Writing... /home/travis/.ironman_test/test/projects/README.md
Writing... /home/travis/.ironman_test/test/projects/managers
 exit status 255 There was an error failed to create generation directory: mkdir /home/travis/.ironman_test/test/projects: file exists

New implementation for templates index to deprecate bleeve implementation

Every time a new field is added to the template model, index templates repository for bleeve which is the current implementation of the Index interface must be updated (https://github.com/ironman-project/ironman/blob/f94623ee4fb8d3610ff4eebf7ffaacb82a5381f7/pkg/template/index/bleve/index.go).

A new implementation with a more abstract file db would be ideal, so new updates to the template model are easily implemented.

I decided to use https://github.com/asdine/storm which is an API on top of boltdb, and seems easy enough to use.

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.