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/doc/latex/iexec/DEPENDS.txt | 1 + Master/texmf-dist/doc/latex/iexec/iexec.pdf | Bin 107811 -> 124366 bytes Master/texmf-dist/doc/latex/iexec/iexec.tex | 12 +++++- Master/texmf-dist/tex/latex/iexec/iexec.sty | 54 +++++++++++++++++++------- 4 files changed, 51 insertions(+), 16 deletions(-) diff --git a/Master/texmf-dist/doc/latex/iexec/DEPENDS.txt b/Master/texmf-dist/doc/latex/iexec/DEPENDS.txt index 6645129e89c..5fa4f92b5c9 100644 --- a/Master/texmf-dist/doc/latex/iexec/DEPENDS.txt +++ b/Master/texmf-dist/doc/latex/iexec/DEPENDS.txt @@ -1,2 +1,3 @@ hard shellesc +hard pgfkeys hard xkeyval diff --git a/Master/texmf-dist/doc/latex/iexec/iexec.pdf b/Master/texmf-dist/doc/latex/iexec/iexec.pdf index 8bae3e0881b..25fa196e423 100644 Binary files a/Master/texmf-dist/doc/latex/iexec/iexec.pdf and b/Master/texmf-dist/doc/latex/iexec/iexec.pdf differ diff --git a/Master/texmf-dist/doc/latex/iexec/iexec.tex b/Master/texmf-dist/doc/latex/iexec/iexec.tex index cc58780c239..0b9d0470264 100644 --- a/Master/texmf-dist/doc/latex/iexec/iexec.tex +++ b/Master/texmf-dist/doc/latex/iexec/iexec.tex @@ -27,7 +27,7 @@ \usepackage{ffcode} \title{\ff{iexec}: \LaTeX{} Package \\ for Inputable Shell Executions} \author{Yegor Bugayenko} -\date{0.4.1 2022/01/02} +\date{0.5.0 2022/01/08} \begin{document} \pagenumbering{gobble} \raggedbottom @@ -66,7 +66,7 @@ The output of your code is saved into the file provided as the second optional argument of \ff{\char`\\iexec} (the default value is \ff{iexec.tmp}): \begin{ffcode} -Today is \iexec[date.txt]{date +\%e-\%b-\%Y | tr -d '\\n'}. +Today is \iexec[stdout=date.txt]{date +\%e-\%b-\%Y | tr -d '\\n'}. \end{ffcode} The tailing part of the command here removes all ends-of-line. @@ -75,6 +75,14 @@ The file specified will be deleted right after its usage. If you don't want this to happen, use \ff{trace} package option: all files will remain in the directory. +There are a few options you can provide for the \ff{\char`\\iexec} command: + +\begin{itemize} + \item \ff{trace}: to prevent the deletion of the file; + \item \ff{stdout=...}: to set the name of the file where the standard output of the command will be saved; + \item \ff{quiet}: to prevent including of the content into the document. +\end{itemize} + More details about this package you can find in the \ff{yegor256/iexec} GitHub repository. 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