% arara: manual

% Arara, the cool TeX automation tool
% Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda
% All rights reserved.
%
% Redistribution and  use in source  and binary forms, with  or without
% modification, are  permitted provided  that the  following conditions
% are met:
%
% 1. Redistributions  of source  code must  retain the  above copyright
% notice, this list of conditions and the following disclaimer.
%
% 2. Redistributions in binary form  must reproduce the above copyright
% notice, this list  of conditions and the following  disclaimer in the
% documentation and/or other materials provided with the distribution.
%
% 3. Neither  the name  of the  project's author nor  the names  of its
% contributors may be used to  endorse or promote products derived from
% this software without specific prior written permission.
%
% THIS SOFTWARE IS  PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS
% "AS IS"  AND ANY  EXPRESS OR IMPLIED  WARRANTIES, INCLUDING,  BUT NOT
% LIMITED  TO, THE  IMPLIED WARRANTIES  OF MERCHANTABILITY  AND FITNESS
% FOR  A PARTICULAR  PURPOSE  ARE  DISCLAIMED. IN  NO  EVENT SHALL  THE
% COPYRIGHT HOLDER OR CONTRIBUTORS BE  LIABLE FOR ANY DIRECT, INDIRECT,
% INCIDENTAL, SPECIAL, EXEMPLARY,  OR CONSEQUENTIAL DAMAGES (INCLUDING,
% BUT  NOT LIMITED  TO, PROCUREMENT  OF SUBSTITUTE  GOODS OR  SERVICES;
% LOSS  OF USE,  DATA, OR  PROFITS; OR  BUSINESS INTERRUPTION)  HOWEVER
% CAUSED AND  ON ANY THEORY  OF LIABILITY, WHETHER IN  CONTRACT, STRICT
% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
% WAY  OUT  OF  THE USE  OF  THIS  SOFTWARE,  EVEN  IF ADVISED  OF  THE
% POSSIBILITY OF SUCH DAMAGE.

\pdfobjcompresslevel=1
\pdfpageattr {/Group << /S /Transparency /I true /CS /DeviceRGB>>}

\documentclass[a4paper,oneside,12pt]{memoir}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[margin=2.5cm]{geometry}
\usepackage{arara}
\usepackage[record,postpunc=dot]{glossaries-extra}

\newcommand{\araraversion}{4.0}

\glssetcategoryattribute{abbreviation}{glossdesc}{firstuc}
\glssetcategoryattribute{general}{glossname}{firstuc}
\glssetcategoryattribute{general}{glossdesc}{firstuc}

\setabbreviationstyle{short-nolong-desc}
\renewcommand{\glsxtrshortdescname}{%
 \protect\glsabbrvfont{\the\glsshorttok} (\the\glslongtok)%
}

 \newabbreviation
 [description={an interface that allows users to interact
through graphical components, such as buttons and menus}]
 {GUI}{GUI}{Graphical User Interface}

 \newabbreviation
 [description={an organisation that develops and promotes Internet standards}]
 {IETF}{IETF}{Internet Engineering Task Force}

 \newabbreviation
 [description={a virtual machine that enables Java programs to be run}]
 {JVM}{JVM}{Java Virtual Machine}

 \newabbreviation
 [description={a hybrid, dynamic, statically typed, embeddable
 expression language and runtime for the Java platform},
 location={(See Chapter~\ref{chap:mvel}.)}]
 {MVEL}{MVEL}{MVFLEX Expression Language}

\newglossaryentry{orb-tag}{name={orb tag},
 description={a dynamic element of an \gls{MVEL} template which is
 evaluated at runtime},
 location={(See Section~\ref{sec:mvelbasictemplating}.)}}

\newabbreviation
 [description={a simple computer programming environment that takes
  a single expression (input), evaluates it and results the result}]
 {REPL}{REPL}{Read--Eval--Print Loop}

\newabbreviation
 [description={a database language}]
 {SQL}{SQL}{Structured Query Language}

\newabbreviation
 [description={a markup language that defines a set of rules for
encoding documents in a format that is both human-readable and
machine-readable}]
 {XML}{XML}{Extensible Markup Language}

\newabbreviation
 [description={human-friendly data, commonly used for configuration
files but also used for data storage or transmission},
 location={(See Chapter~\ref{chap:yaml}.)}]
 {YAML}{YAML}{YAML Ain't Markup Language}
 
\begin{document}

\begin{titlingpage}
\vspace*{2em}

\begin{center}
\includegraphics[scale=0.7]{logos/logo2.pdf}

\vspace{4em}

\begin{tcolorbox}[
  boxrule=0pt,
  colback=araracolour,
  top=1em,
  bottom=1em
]
  \color{white}
  \centering
  \Huge
  \sffamily
  \bfseries User manual
\end{tcolorbox}

\vspace{6em}

{\large\em Paulo Cereda, Marco Daniel,\\
Brent Longborough, and Nicola Talbot\par}

\vspace{3em}

\href{mailto:cereda.paulo@gmail.com}{\fpemail{0.4}}%
\quad\href{https://github.com/cereda/arara}{\fpgithub{0.4}}%
\quad\href{http://twitter.com/paulocereda}{\fptwitter{0.4}}

\vfill

{\color{araracolour}
\LARGE
\sffamily
\bfseries
Version \araraversion}

\end{center}
\end{titlingpage}

\chapterstyle{araraheadings}
\pagestyle{headings}
\frontmatter
\nouppercaseheads

\cleardoublepage

\vspace*{25em}

\begin{flushright}
\em No birds were harmed in the making of this manual.
\end{flushright}

\include{chapters/foreword}
\include{chapters/prologue}
\include{chapters/license}
\printunsrtglossary

\cleardoublepage

\vspace*{25em}

\thispagestyle{empty}
\begin{flushright}
\em To Marco's son Niclas.
\end{flushright}

\cleardoublepage

\tableofcontents*

\cleardoublepage

\mainmatter

\include{chapters/introduction}

\part{The application}
\label{part:application}

\include{chapters/concepts}
\include{chapters/cli}
\include{chapters/configuration}
\include{chapters/logging}
\include{chapters/methods}
\include{chapters/rules}

\part{Development and deployment}
\label{part:developmentanddeployment}

\include{chapters/building}
\include{chapters/deploying}

\part{A primer on formats and scripting}
\label{part:primer}

\include{chapters/yaml}
\include{chapters/mvel}

\end{document}
