annotate bin/mkreport @ 256:f051de40b409 default tip

Add fzf as fuzzy file finder in vim
author zegervdv <zegervdv@me.com>
date Wed, 04 Mar 2015 22:05:53 +0100
parents 016c657f0c31
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
89
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
1 #!/usr/bin/env ruby
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
2
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
3 # 2014, Zeger Van de Vannet
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
4 #
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
5 # mkreport: Create a new latex report from template
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
6
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
7 require 'optparse'
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
8 require 'ostruct'
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
9 require 'erb'
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
10
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
11 TEMPLATE_DIR = File.expand_path(".templates", "~")
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
12 LANGS = {
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
13 "nl" => 'dutch',
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
14 "en" => 'english'
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
15 }
6
d35280c9b023 Add custom CLI tools
zegervdv <zegervdv@me.com>
parents:
diff changeset
16
89
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
17 options = OpenStruct.new
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
18 # defaults
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
19 options.title = "TITLE HERE"
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
20 options.lang = "english"
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
21 options.class_opts = ["a4paper"]
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
22
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
23 OptionParser.new do |opts|
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
24 opts.banner = "Usage: mkreport [options] [filename]"
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
25 opts.on('-t', '--title TITLE', 'Set the title') { |opt| options.title = opt }
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
26 opts.on('-l','--language LANG', 'Set the language' ) { |opt| options.lang = LANGS[opt] || options.lang }
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
27 opts.on('--toc', 'Add Table of contents') { |opt| options.toc = true }
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
28 opts.on('-v', '--verbose', 'Show more (debugging) information') { |opt| options.verbose = true }
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
29 opts.on('--titlepage', 'Set a title page') { |opt| options.class_opts << 'titlepage' }
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
30 end.parse!
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
31
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
32 if ARGV.empty?
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
33 options.filename = 'report.tex'
33
3bc2e4f5cc59 Update latex template
zegervdv <zegervdv@me.com>
parents: 6
diff changeset
34 else
89
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
35 options.filename = "#{ARGV.first}.tex"
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
36 end
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
37
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
38 puts options.inspect if options.verbose
33
3bc2e4f5cc59 Update latex template
zegervdv <zegervdv@me.com>
parents: 6
diff changeset
39
89
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
40 template = File.read(File.expand_path('report.tex.erb', TEMPLATE_DIR))
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
41
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
42 File.open(options.filename, 'w') do |report|
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
43 @options = options
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
44 report.puts ERB.new(template).result()
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
45 puts "Created #{options.filename}"
016c657f0c31 Supercharge mkreport script
zegervdv <zegervdv@me.com>
parents: 33
diff changeset
46 end