changeset 89:016c657f0c31

Supercharge mkreport script
author zegervdv <zegervdv@me.com>
date Sat, 02 Aug 2014 17:44:15 +0200
parents d561c94bdefd
children 3fdc762fe6bb
files bin/mkreport templates/report.tex templates/report.tex.erb
diffstat 3 files changed, 72 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/bin/mkreport	Sat Aug 02 11:08:43 2014 +0200
+++ b/bin/mkreport	Sat Aug 02 17:44:15 2014 +0200
@@ -1,11 +1,46 @@
-#!/bin/sh
-# Create a new latex report from template
+#!/usr/bin/env ruby
+
+# 2014, Zeger Van de Vannet
+#
+# mkreport: Create a new latex report from template
+
+require 'optparse'
+require 'ostruct'
+require 'erb'
+
+TEMPLATE_DIR = File.expand_path(".templates", "~")
+LANGS = {
+  "nl" => 'dutch',
+  "en" => 'english'
+}
 
-if [ $1 ]; then
-  name=$1
+options = OpenStruct.new
+# defaults
+options.title = "TITLE HERE"
+options.lang = "english"
+options.class_opts = ["a4paper"]
+
+OptionParser.new do |opts|
+  opts.banner = "Usage: mkreport [options] [filename]"
+  opts.on('-t', '--title TITLE', 'Set the title') { |opt| options.title = opt }
+  opts.on('-l','--language LANG', 'Set the language' ) { |opt| options.lang = LANGS[opt] || options.lang }
+  opts.on('--toc', 'Add Table of contents') { |opt| options.toc = true }
+  opts.on('-v', '--verbose', 'Show more (debugging) information') { |opt| options.verbose = true }
+  opts.on('--titlepage', 'Set a title page') { |opt| options.class_opts << 'titlepage' }
+end.parse!
+
+if ARGV.empty?
+  options.filename = 'report.tex'
 else
-  name='report.tex'
-fi
+  options.filename = "#{ARGV.first}.tex"
+end
+
+puts options.inspect if options.verbose
 
-cp $HOME/.templates/report.tex $name
-echo "Created $name"
+template = File.read(File.expand_path('report.tex.erb', TEMPLATE_DIR))
+
+File.open(options.filename, 'w') do |report|
+  @options = options
+  report.puts ERB.new(template).result()
+  puts "Created #{options.filename}"
+end
--- a/templates/report.tex	Sat Aug 02 11:08:43 2014 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-\documentclass[a4paper]{article}        % Standaard een kolom layout
-\usepackage[english]{babel}             % Stel woordafbrekingen en referentienamen in
-\usepackage{graphicx}                   % Afbeeldingen weergeven
-\usepackage{float}                      % Figuren op plaats waar ze gedefinieerd staan: [H]
-\usepackage{lmodern}                    % Gebruik modern lettertype
-\usepackage[T1]{fontenc}
-\usepackage[hidelinks]{hyperref}        % Referenties aanklikbaar in PDF, geen kaders rond weergeven
-\usepackage{siunitx}                    % SI unit symbolen
-\usepackage{amsmath}                    % Matrices en vergelijkingen
-\usepackage{subcaption}                 % Subfiguren
-
-\DeclareSIUnit\dbm{\decibel{}m}         % Voeg dBm toe als eenheid
-
-\title{}
-\author{Zeger Van de Vannet}
-\date{\today}
-
-\begin{document}
-\maketitle
-
-% Inhoudstafel
-% \newpage
-%   \tableofcontents
-% \newpage
-
-\end{document}
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/report.tex.erb	Sat Aug 02 17:44:15 2014 +0200
@@ -0,0 +1,29 @@
+\documentclass[<%= @options.class_opts.join(',') %>]{article}        % Standaard een kolom layout
+\usepackage[<%= @options.lang %>]{babel}        % Stel woordafbrekingen en referentienamen in
+\usepackage{graphicx}                   % Afbeeldingen weergeven
+\usepackage{float}                      % Figuren op plaats waar ze gedefinieerd staan: [H]
+\usepackage{lmodern}                    % Gebruik modern lettertype
+\usepackage[T1]{fontenc}
+\usepackage[hidelinks]{hyperref}        % Referenties aanklikbaar in PDF, geen kaders rond weergeven
+\usepackage{siunitx}                    % SI unit symbolen
+\usepackage{amsmath}                    % Matrices en vergelijkingen
+\usepackage{subcaption}                 % Subfiguren
+
+\DeclareSIUnit\dbm{\decibel{}m}         % Voeg dBm toe als eenheid
+
+\title{<%= @options.title %>}
+\author{Zeger Van de Vannet}
+\date{\today}
+
+\begin{document}
+\maketitle
+
+<% if @options.toc %>
+  % Inhoudstafel
+  \newpage
+    \tableofcontents
+  \newpage
+<% end %>
+
+\end{document}
+