summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-10-21 19:39:30 +0000
committerKarl Berry <karl@freefriends.org>2022-10-21 19:39:30 +0000
commitcbb4e087cc95fff8e3679416fd80f9e1e79c0811 (patch)
tree684ac76d2928fcb7ba55622580889541ef757356 /Master/texmf-dist/tex
parent5e428e2c6ca2c028a39800deced376dc72d9f0e0 (diff)
iexec (21oct22)
git-svn-id: svn://tug.org/texlive/trunk@64771 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/iexec/iexec.sty74
1 files changed, 52 insertions, 22 deletions
diff --git a/Master/texmf-dist/tex/latex/iexec/iexec.sty b/Master/texmf-dist/tex/latex/iexec/iexec.sty
index 4eca7db498a..401e8565c55 100644
--- a/Master/texmf-dist/tex/latex/iexec/iexec.sty
+++ b/Master/texmf-dist/tex/latex/iexec/iexec.sty
@@ -31,7 +31,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{iexec}
-[2022-10-15 0.9.1 Inputable Shell Executions]
+[2022-10-21 0.10.1 Inputable Shell Executions]
@@ -68,6 +68,7 @@
log/.store in = \iexec@log,
null/.store in = \iexec@null,
quiet/.store in = \iexec@quiet,
+ ignore/.store in = \iexec@ignore,
stdout
}\makeatother
@@ -85,15 +86,19 @@
}
\ExplSyntaxOff\makeatother
-\makeatletter\newcommand\iexec[2][]{%
- \begingroup
+\makeatletter
+\newread\iexec@retfile
+\newcommand\iexec[2][]{%
+ \begingroup%
\pgfqkeys{/iexec}{#1}%
\ifnum\ShellEscapeStatus=1\else%
\PackageError{iexec}{You must run TeX processor with
--shell-escape option}{}%
\fi%
\begingroup%
- \message{^^J}%
+ \ifdefined\iexec@log%
+ \message{^^J}%
+ \fi%
\let\%\@percentchar%
\let\\\@backslashchar%
\let\{\@charlb%
@@ -101,44 +106,69 @@
\def\iexec@cmd{(#2)
\ifdefined\iexec@append>\fi>
\ifdefined\iexec@null/dev/null\else\iexec@stdout\fi
- \space\ifdefined\iexec@stderr2>\iexec@stderr\else2>&1\fi}
+ \space\ifdefined\iexec@stderr2>\iexec@stderr\else2>&1\fi
+ \ifdefined\iexec@ignore\else; echo $? >iexec.ret\fi}
\ShellEscape{\iexec@cmd}%
- \message{iexec: [\iexec@cmd]^^J}%
+ \ifdefined\iexec@log%
+ \message{iexec: [\iexec@cmd]^^J}%
+ \fi%
\endgroup%
- \ifdefined\iexec@null\else
- \ifdefined\iexec@log
- \message{iexec: this is the content of \iexec@stdout:^^J}%
- \iexec@typeout{\iexec@stdout}
+ \ifdefined\iexec@null\else%
+ \ifdefined\iexec@log%
+ \message{iexec: This is the content of \iexec@stdout:^^J}%
+ \iexec@typeout{\iexec@stdout}%
\message{<EOF>^^J}%
\fi\fi%
- \ifdefined\iexec@null\else
- \ifdefined\iexec@quiet
- \message{iexec: Due to 'quiet' option we didn't read
- the content of '\iexec@stdout' (\pdffilesize{} bytes)^^J}%
+ \ifdefined\iexec@log\else%
+ \immediate\openin\iexec@retfile=iexec.ret%
+ \read\iexec@retfile to \iexec@ret%
+ \immediate\closein\iexec@retfile%
+ \ifnum\iexec@ret=0\else%
+ \PackageError{iexec}{Exit code is \iexec@ret}{}%
+ \fi%
+ \fi%
+ \ifdefined\iexec@null\else%
+ \ifdefined\iexec@quiet%
+ \ifdefined\iexec@log%
+ \message{iexec: Due to 'quiet' option we didn't read
+ the content of '\iexec@stdout'
+ \ifdefined\pdffilesize(\pdffilesize{\iexec@stdout}
+ bytes)\fi^^J}%
+ \fi%
\else%
- \message{iexec: We include the content of
- '\iexec@stdout' (\pdffilesize{} bytes)...^^J}%
+ \ifdefined\iexec@log%
+ \message{iexec: We include the content of
+ '\iexec@stdout'\ifdefined\pdffilesize(\pdffilesize
+ {\iexec@stdout} bytes)\fi...^^J}%
+ \fi%
\input{\iexec@stdout}%
\message{iexec: The content of '\iexec@stdout'
was included into the document^^J}%
\fi\fi%
- \ifdefined\iexec@null\else
+ \ifdefined\iexec@null\else%
\ifiexec@trace%
- \message{iexec: Due to package option 'trace',
- the file '\iexec@stdout' was not deleted^^J}%
+ \ifdefined\iexec@log%
+ \message{iexec: Due to package option 'trace',
+ the file '\iexec@stdout' was not deleted^^J}%
+ \fi%
\else%
\ifdefined\iexec@traceit%
- \message{iexec: Due to 'trace' option,
- the file '\iexec@stdout' was not deleted^^J}%
+ \ifdefined\iexec@log%
+ \message{iexec: Due to 'trace' option,
+ the file '\iexec@stdout' was not deleted^^J}%
+ \fi%
\else%
\ShellEscape{rm \iexec@stdout}%
- \message{iexec: The file '\iexec@stdout' was deleted^^J}%
+ \ifdefined\iexec@log%
+ \message{iexec: The file '\iexec@stdout' was deleted^^J}%
+ \fi%
\fi%
\fi\fi%
\endgroup
}\makeatother
+
\endinput
%%
%% End of file `iexec.sty'.