sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
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:
M .gitignore | 1 +
M .travis.yml | 2 +-
M Rakefile | 45 ++++++++++++++++++++++++++++++++++++++++++++-
M sup.gemspec | 1 +
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'