forked from gettalong/cmdparse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Rakefile
137 lines (110 loc) · 3.33 KB
/
Rakefile
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']