summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/iexec/iexec.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/iexec/iexec.sty')
-rw-r--r--macros/latex/contrib/iexec/iexec.sty54
1 files changed, 40 insertions, 14 deletions
diff --git a/macros/latex/contrib/iexec/iexec.sty b/macros/latex/contrib/iexec/iexec.sty
index a96f41b004..a15cd50942 100644
--- a/macros/latex/contrib/iexec/iexec.sty
+++ b/macros/latex/contrib/iexec/iexec.sty
@@ -21,29 +21,55 @@
% SOFTWARE.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{iexec}[2022/01/02 0.4.1 Inputable Shell Executions]
+\ProvidesPackage{iexec}[2022/01/08 0.5.0 Inputable Shell Executions]
\RequirePackage{shellesc}
-
+\RequirePackage{pgfkeys}
\RequirePackage{xkeyval}
+
\makeatletter\newif\ifiexec@trace
\DeclareOptionX{trace}{\iexec@tracetrue}
\ProcessOptionsX\relax\makeatother
-\makeatletter\newcommand\iexec[2][iexec.tmp]{%
- \ifnum\pdfshellescape=1\else
- \PackageError{iexec}{You must run latex with --shell-escape option}{}
- \fi
+\makeatletter\pgfkeys{
+ /iexec/.is family,
+ /iexec,
+ stdout/.estore in = \iexec@stdout,
+ stdout/.default = iexec.tmp,
+ trace/.estore in = \iexec@traceit,
+ quiet/.estore in = \iexec@quiet,
+ stdout
+}\makeatother
+
+\makeatletter\newcommand\iexec[2][]{%
+ \pgfkeys{/iexec, #1}%
+ \ifnum\pdfshellescape=1\else%
+ \PackageError{iexec}{You must run latex with --shell-escape option}{}%
+ \fi%
\begingroup%
- \let\%\@percentchar%
- \let\\\@backslashchar%
- \let\{\@charlb%
- \let\}\@charrb%
- \ShellEscape{#2 > #1}%
- \message{iexec: [#2 > #1]}%
+ \let\%\@percentchar%
+ \let\\\@backslashchar%
+ \let\{\@charlb%
+ \let\}\@charrb%
+ \ShellEscape{#2 > \iexec@stdout}%
+ \message{iexec: [#2 > \iexec@stdout]}%
\endgroup%
- \input{#1}%
- \ifiexec@trace\else\ShellEscape{rm #1}\fi%
+ \ifdefined\iexec@quiet
+ \message{iexec: Due to 'quiet' we didn't read the content of '\iexec@stdout'}%
+ \else%
+ \input{\iexec@stdout}%
+ \message{iexec: The content of '\iexec@stdout' was included into the document}%
+ \fi%
+ \ifiexec@trace%
+ \message{iexec: Due to package option 'trace', the file '\iexec@stdout' was not deleted}%
+ \else%
+ \ifdefined\iexec@traceit%
+ \message{iexec: Due to 'trace' option, the file '\iexec@stdout' was not deleted}%
+ \else%
+ \ShellEscape{rm \iexec@stdout}%
+ \message{iexec: The file '\iexec@stdout' was deleted}%
+ \fi%
+ \fi%
}\makeatother
\endinput