diff options
author | Karl Berry <karl@freefriends.org> | 2022-10-22 20:19:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-10-22 20:19:19 +0000 |
commit | 88d2bffffce48a354fe417e5b7a6ed77c1ffbc03 (patch) | |
tree | 1f16bb36dfa6179138d1f20dd09278e4ebbeca3f /Master/texmf-dist/tex/latex | |
parent | 87c57734b37c8530bbbbf6d06fade54708c923ca (diff) |
iexec (22oct22)
git-svn-id: svn://tug.org/texlive/trunk@64779 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/iexec/iexec.sty | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/Master/texmf-dist/tex/latex/iexec/iexec.sty b/Master/texmf-dist/tex/latex/iexec/iexec.sty index 401e8565c55..a4eb81f9966 100644 --- a/Master/texmf-dist/tex/latex/iexec/iexec.sty +++ b/Master/texmf-dist/tex/latex/iexec/iexec.sty @@ -31,7 +31,8 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{iexec} -[2022-10-21 0.10.1 Inputable Shell Executions] +[2022-10-22 0.11.0 Inputable Shell Executions] + @@ -60,6 +61,8 @@ \makeatletter\pgfkeys{ /iexec/.is family, /iexec, + exit/.store in = \iexec@exit, + exit/.default = iexec.ret, stdout/.store in = \iexec@stdout, stdout/.default = iexec.tmp, stderr/.store in = \iexec@stderr, @@ -69,7 +72,7 @@ null/.store in = \iexec@null, quiet/.store in = \iexec@quiet, ignore/.store in = \iexec@ignore, - stdout + stdout,exit }\makeatother \RequirePackage{expl3} @@ -87,7 +90,7 @@ \ExplSyntaxOff\makeatother \makeatletter -\newread\iexec@retfile +\newread\iexec@exitfile \newcommand\iexec[2][]{% \begingroup% \pgfqkeys{/iexec}{#1}% @@ -106,8 +109,8 @@ \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 - \ifdefined\iexec@ignore\else; echo $? >iexec.ret\fi} + \space\ifdefined\iexec@stderr2>\iexec@stderr\else2>&1\fi; + /bin/echo -n $? >\iexec@exit} \ShellEscape{\iexec@cmd}% \ifdefined\iexec@log% \message{iexec: [\iexec@cmd]^^J}% @@ -119,12 +122,18 @@ \iexec@typeout{\iexec@stdout}% \message{<EOF>^^J}% \fi\fi% - \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}{}% + \immediate\openin\iexec@exitfile=\iexec@exit% + \read\iexec@exitfile to \iexec@code% + \immediate\closein\iexec@exitfile% + \ifnum\iexec@code=0\else% + \ifdefined\iexec@ignore% + \ifdefined\iexec@log% + \message{iexec: Execution failure ignored, + the exit code was \iexec@code^^J}% + \fi% + \else% + \PackageError{iexec}{Execution failure, + the exit code was \iexec@code}{}% \fi% \fi% \ifdefined\iexec@null\else% @@ -132,13 +141,13 @@ \ifdefined\iexec@log% \message{iexec: Due to 'quiet' option we didn't read the content of '\iexec@stdout' - \ifdefined\pdffilesize(\pdffilesize{\iexec@stdout} + \ifdefined\pdffilesize (\pdffilesize{\iexec@stdout} bytes)\fi^^J}% \fi% \else% \ifdefined\iexec@log% - \message{iexec: We include the content of - '\iexec@stdout'\ifdefined\pdffilesize(\pdffilesize + \message{iexec: We are going to include the content of + '\iexec@stdout'\ifdefined\pdffilesize (\pdffilesize {\iexec@stdout} bytes)\fi...^^J}% \fi% \input{\iexec@stdout}% @@ -149,19 +158,25 @@ \ifiexec@trace% \ifdefined\iexec@log% \message{iexec: Due to package option 'trace', - the file '\iexec@stdout' was not deleted^^J}% + the files '\iexec@stdout' and `\iexec@exit` were + not deleted^^J}% \fi% \else% \ifdefined\iexec@traceit% \ifdefined\iexec@log% - \message{iexec: Due to 'trace' option, - the file '\iexec@stdout' was not deleted^^J}% + \message{iexec: Due to 'trace' package option, + the files '\iexec@stdout' and '\iexec@exit' + were not deleted^^J}% \fi% \else% \ShellEscape{rm \iexec@stdout}% \ifdefined\iexec@log% \message{iexec: The file '\iexec@stdout' was deleted^^J}% \fi% + \ShellEscape{rm \iexec@exit}% + \ifdefined\iexec@log% + \message{iexec: The file '\iexec@exit' was deleted^^J}% + \fi% \fi% \fi\fi% \endgroup |