From e20ffca55d8295daca2e358aecccb6959204d17d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 8 Jan 2022 21:35:47 +0000 Subject: iexec (8jan22) git-svn-id: svn://tug.org/texlive/trunk@61539 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/iexec/iexec.sty | 54 +++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 14 deletions(-) (limited to 'Master/texmf-dist/tex/latex/iexec') diff --git a/Master/texmf-dist/tex/latex/iexec/iexec.sty b/Master/texmf-dist/tex/latex/iexec/iexec.sty index a96f41b0046..a15cd50942a 100644 --- a/Master/texmf-dist/tex/latex/iexec/iexec.sty +++ b/Master/texmf-dist/tex/latex/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 -- cgit v1.2.3