File: Rakefile

package info (click to toggle)
ruby-cmdparse 3.0.7-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 312 kB
  • sloc: ruby: 1,736; makefile: 11
file content (137 lines) | stat: -rw-r--r-- 3,411 bytes parent folder | download | duplicates (2)
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']