commit b21aeefd0130a061da3e74deabb22c84249a9e86
parent 56508778523913f773f2e4589af3b658ea40b728
Author: Gaute Hope <eg@gaute.vetsj.com>
Date: Thu, 10 Apr 2014 14:53:29 +0200
manpages: build and include manpages in gem from wiki
Diffstat:
4 files changed, 47 insertions(+), 2 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -4,6 +4,7 @@
*~
# artifact
pkg/
+man/
*.gem
# i have accidently added this one one too many times
sup-exception-log.txt
diff --git a/.travis.yml b/.travis.yml
@@ -7,6 +7,6 @@ rvm:
before_install:
- sudo apt-get update -qq
- - sudo apt-get install -qq uuid-dev uuid libncursesw5-dev libncursesw5 gnupg2
+ - sudo apt-get install -qq uuid-dev uuid libncursesw5-dev libncursesw5 gnupg2 pandoc
script: bundle exec rake travis
diff --git a/Rakefile b/Rakefile
@@ -9,4 +9,47 @@ Rake::TestTask.new(:test) do |test|
end
task :default => :test
-task :travis => [:test, :build]
+require 'rubygems/package_task'
+# For those who don't have `rubygems-bundler` installed
+load 'sup.gemspec' unless defined? Redwood::Gemspec
+
+task :gem => [:doc]
+
+Gem::PackageTask.new(Redwood::Gemspec) do |pkg|
+ pkg.need_tar = true
+end
+
+task :travis => [:test, :gem]
+
+def test_pandoc
+ return system("pandoc -v > /dev/null 2>&1")
+end
+
+task :doc do
+ puts "building manpages from wiki.."
+ unless test_pandoc
+ puts "no pandoc installed, needed for manpage generation."
+ return
+ end
+
+ # test if wiki is cloned
+ unless File.exist? 'doc/wiki/man/manpage.md'
+ puts "wiki git repository is not cloned in doc/wiki."
+ return
+ end
+
+ unless Dir.exist? 'man'
+ Dir.mkdir 'man'
+ end
+
+ manpages = FileList.new('doc/wiki/man/*.md')
+ manpages.each do |m|
+ puts "generating manpage for: #{m}.."
+ system "pandoc -s -f markdown -t man #{m} -o man/#{File.basename(m).gsub(".md","")}.1"
+ end
+end
+
+task :clean do
+ FileUtils.rm_r 'man'
+ FileUtils.rm_r 'pkg'
+end
diff --git a/sup.gemspec b/sup.gemspec
@@ -31,6 +31,7 @@ SUP: please note that our old mailing lists have been shut down,
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
s.test_files = s.files.grep(%r{^(test|spec|features)/})
s.require_paths = ["lib"]
+ s.extra_rdoc_files = s.files.grep(%r{^man/.*\.1$})
s.required_ruby_version = '>= 1.9.3'