Add generators for publisher and builder

This commit is contained in:
Charles Lowell 2011-09-30 12:45:56 -05:00
parent 74024fbe45
commit 61a69375fd
4 changed files with 54 additions and 6 deletions

View File

@ -22,7 +22,7 @@ Gem::Specification.new do |s|
s.add_dependency "rubyzip"
s.add_dependency "thor"
s.add_dependency "jenkins-war", ">= 1.427"
s.add_dependency "bundler", "~> 1.0.0"
s.add_dependency "bundler"
s.add_dependency "jenkins-plugin-runtime", "~> 0.1.6"
s.add_development_dependency "rspec", "~> 2.0"

View File

@ -3,6 +3,7 @@ require 'thor'
require 'jenkins/plugin/specification'
require 'jenkins/plugin/cli/formatting'
require 'jenkins/plugin/cli/new'
require 'jenkins/plugin/cli/generate'
module Jenkins
@ -11,11 +12,7 @@ module Jenkins
extend Formatting
register New, "new", "new NAME", "create a new plugin called NAME"
desc "generate", "generate code for extensions points"
def generate
shell.say "TODO: generate()"
end
register Generate, "generate", "generate [options] [arguments]", "add new classes/templates and views to your project"
map "g" => "generate"

View File

@ -0,0 +1,27 @@
module Jenkins
class Plugin
class CLI
class Generate < Thor
include Thor::Actions
source_root File.dirname(__FILE__)
argument :name
desc "publisher", "publisher NAME", "generate a publish step definition"
def publisher
@step_class = "Publisher"
template('templates/build_step.tt', "models/#{name.downcase}_publisher.rb")
end
desc "builder", "builder NAME", "generate a build step definition"
def builder
@step_class = "Builder"
template('templates/build_step.tt', "models/#{name.downcase}_builder.rb")
end
end
end
end
end

View File

@ -0,0 +1,24 @@
class <%= name.capitalize %><%= @step_class %> < Jenkins::Tasks::<%= @step_class %>
##
# Runs before the build begins
#
# @param [Jenkins::Model::Build] build the build which will begin
# @param [Jenkins::Launcher] launcher the launcher that can run code on the node running this build
# @param [Jenkins::Model::Listener] listener the listener for this build.
def prebuild(build, launcher, listener)
listener.info "prebuild()"
end
##
# Runs the step over the given build and reports the progress to the listener.
#
# @param [Jenkins::Model::Build] build on which to run this step
# @param [Jenkins::Launcher] launcher the launcher that can run code on the node running this build
# @param [Jenkins::Model::Listener] listener the listener for this build.
def perform(build, launcher, listener)
listener.info "perform()"
end
end