Creating a foreman plugin generator

Hi,

Today I am taking the covers off a new project that I recently started which stems from a similar project called puppet-retrospec. This project allows one to automate a development workflow for creating and “retrofitting” files into a new or existing project.
What this means is that instructions for creating a foreman plugin can be automated which can save hours for anybody wishing to get started quickly.

If your not sure what this means check out this gem https://github.com/nwops/puppet-retrospec.git and use it against your own puppet modules.

Now the reason I am excited to release this project is because I think it would be awesome to have foreman/smart-proxy plugin generators created with retrospec so that we can make it dead simple to create plugins for the foreman ecosystem.

How simple you say? Like this: retrospec -m /foreman_plugins/foreman-monitor foremanplugin -n foreman_monitor

What the generator plugin does is really up to us, but would most likely perform all the manual steps defined here: How to Create a Plugin - Foreman
and also automatically setup a plugin based on : https://github.com/theforeman/foreman_plugin_template

However, by utilizing the retrospec framework we can take this to the next level. Because retrospec renders every file as a template we can customize the source code to fit the users needs based on input from the command line, http call, file lookup or whatever. Its really up to us to decide how easy we want to make it.

Best of all I have a plugin generator to create plugins for retrospec, and now we can have one for foreman plugins as well.

I went ahead and started an unofficial foreman plugin generator that can be used today. Aside from copying documentation and further refinement it works pretty good. I have not published this gem because I prefer to have it under theforeman github namespace instead of mine.

https://github.com/nwops/retrospec-foreman_plugin.git (retrospec plugin to create foreman plugins)

https://github.com/nwops/retrospec (retrospec framework)

Corey