1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
# -*- ruby -*-
#
#--
# cmdparse: advanced command line parser supporting commands
# Copyright (C) 2004-2015 Thomas Leitner
#
# This file is part of cmdparse which is licensed under the MIT.
#++
#
require 'rubygems/package_task'
require 'rake/clean'
require 'rake/packagetask'
require 'rdoc/task'
# General actions ##############################################################
$:.unshift 'lib'
require 'cmdparse'
PKG_NAME = "cmdparse"
PKG_VERSION = CmdParse::VERSION
PKG_FULLNAME = PKG_NAME + "-" + PKG_VERSION
begin
require 'webgen/page'
rescue LoadError
end
# End user tasks ################################################################
# The default task is run if rake is given no explicit arguments.
task :default do
puts "Select task to execute:"
sh "rake -T"
end
desc "Installs the package #{PKG_NAME} using setup.rb"
task :install do
ruby "setup.rb config"
ruby "setup.rb setup"
ruby "setup.rb install"
end
task :clean do
ruby "setup.rb clean"
end
desc "Build the whole user documentation (website and api)"
task :doc
if defined?(Webgen)
CLOBBER << "htmldoc"
CLOBBER << "webgen-tmp"
desc "Builds the documentation website"
task :htmldoc do
sh "webgen"
end
task :doc => :htmldoc
end
# Developer tasks ##############################################################
namespace :dev do
PKG_FILES = FileList.new( [
'setup.rb',
'COPYING',
'README.md',
'Rakefile',
'example/net.rb',
'VERSION',
'lib/**/*.rb',
'doc/**/*',
'webgen.config'
])
CLOBBER << "VERSION"
file 'VERSION' do
puts "Generating VERSION file"
File.open('VERSION', 'w+') {|file| file.write(PKG_VERSION + "\n")}
end
Rake::PackageTask.new('cmdparse', PKG_VERSION) do |pkg|
pkg.need_tar = true
pkg.need_zip = true
pkg.package_files = PKG_FILES
end
spec = Gem::Specification.new do |s|
#### Basic information
s.name = PKG_NAME
s.version = PKG_VERSION
s.summary = "Advanced command line parser supporting commands"
s.description = <<-EOF
cmdparse provides classes for parsing (possibly nested) commands on the command line;
command line options themselves are parsed using optparse.
EOF
s.license = 'MIT'
#### Dependencies, requirements and files
s.files = PKG_FILES.to_a
s.require_path = 'lib'
s.required_ruby_version = ">= 2.0.0"
s.add_development_dependency "webgen", "~> 1.4"
#### Documentation
s.rdoc_options = ['--line-numbers', '--main', 'CmdParse::CommandParser']
#### Author and project details
s.author = "Thomas Leitner"
s.email = "t_leitner@gmx.at"
s.homepage = "https://cmdparse.gettalong.org"
end
Gem::PackageTask.new(spec) do |pkg|
pkg.need_zip = true
pkg.need_tar = true
end
desc "Upload the release to Rubygems"
task :publish_files => [:package] do
sh "gem push pkg/cmdparse-#{PKG_VERSION}.gem"
end
if defined?(Webgen)
desc "Release cmdparse version " + PKG_VERSION
task :release => [:clobber, :package, :publish_files, :doc] do
puts "Upload htmldoc/ to the webserver"
end
end
end
task :clobber => ['dev:clobber']
|