texlive[69419] Master/texmf-dist: iexec (14jan24)
commits+karl at tug.org
commits+karl at tug.org
Sun Jan 14 22:14:04 CET 2024
Revision: 69419
https://tug.org/svn/texlive?view=revision&revision=69419
Author: karl
Date: 2024-01-14 22:14:04 +0100 (Sun, 14 Jan 2024)
Log Message:
-----------
iexec (14jan24)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/iexec/DEPENDS.txt
trunk/Master/texmf-dist/doc/latex/iexec/LICENSE.txt
trunk/Master/texmf-dist/doc/latex/iexec/iexec.pdf
trunk/Master/texmf-dist/source/latex/iexec/iexec.dtx
trunk/Master/texmf-dist/source/latex/iexec/iexec.ins
trunk/Master/texmf-dist/tex/latex/iexec/iexec.sty
Modified: trunk/Master/texmf-dist/doc/latex/iexec/DEPENDS.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/iexec/DEPENDS.txt 2024-01-14 21:13:52 UTC (rev 69418)
+++ trunk/Master/texmf-dist/doc/latex/iexec/DEPENDS.txt 2024-01-14 21:14:04 UTC (rev 69419)
@@ -1,4 +1,4 @@
-hard xkeyval
+hard pgf
soft catchfile
soft docshots
soft environ
Modified: trunk/Master/texmf-dist/doc/latex/iexec/LICENSE.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/iexec/LICENSE.txt 2024-01-14 21:13:52 UTC (rev 69418)
+++ trunk/Master/texmf-dist/doc/latex/iexec/LICENSE.txt 2024-01-14 21:14:04 UTC (rev 69419)
@@ -1,6 +1,6 @@
(The MIT License)
-Copyright (c) 2021-2023 Yegor Bugayenko
+Copyright (c) 2021-2024 Yegor Bugayenko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal
Modified: trunk/Master/texmf-dist/doc/latex/iexec/iexec.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/iexec/iexec.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/iexec/iexec.dtx 2024-01-14 21:13:52 UTC (rev 69418)
+++ trunk/Master/texmf-dist/source/latex/iexec/iexec.dtx 2024-01-14 21:14:04 UTC (rev 69419)
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% (The MIT License)
%
-% Copyright (c) 2021-2023 Yegor Bugayenko
+% Copyright (c) 2021-2024 Yegor Bugayenko
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the 'Software'), to deal
@@ -50,7 +50,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{iexec}
%<*package>
-[2023-12-28 0.13.0 Inputable Shell Executions]
+[2024-01-14 0.14.0 Inputable Shell Executions]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -265,32 +265,44 @@
%</verb>
%\fi
+% \DescribeMacro{maybe}
+% If |-shell-escape| is not set, the |\iexec| command will lead to compilation failure. This
+% failure may be avoided with the help of the |maybe| option, which means that the execution
+% of |\iexec| must be quietly skipped if |-shell-escape| is not set:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\iexec[maybe]{echo 'Hello, world!'}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+
% \StopEventually{}
% \section{Implementation}
-% First, we include \href{https://ctan.org/pkg/shellesc}{shellesc} package, which
-% we use to execute shell commands:
+% First, we include the \href{https://ctan.org/pkg/shellesc}{shellesc} package, which
+% we use in order to execute shell commands:
% \begin{macrocode}
\RequirePackage{shellesc}
% \end{macrocode}
-% Then, we parse package options:
+% Then, we parse package options, with the help
+% of \href{https://ctan.org/pkg/pgfopts}{pgfopts}:
+% \changes{0.14.0}{2024/01/14}{The \texttt{xkeyval} package is not used anymore. Instead, we use \texttt{pfgopts} in order to parse package options.}
% \begin{macrocode}
-\RequirePackage{xkeyval}
-\makeatletter
-\newif\ifiexec at trace
-\DeclareOptionX{trace}{\iexec at tracetrue}
-\ProcessOptionsX\relax
-\makeatother
+\RequirePackage{pgfopts}
+\pgfkeys{
+ /iexec/.cd,
+ trace/.store in=\iexec at trace,
+}
+\ProcessPgfPackageOptions{/iexec}
% \end{macrocode}
-% Then, we prepare to parse the options of |\iexec| command:
-% \changes{0.10.0}{2022/10/19}{The option ``\texttt{ignore}'' suppresses the checking of ``\texttt{iexec.ret}'' value.}
-% \changes{0.7.0}{2022/09/25}{The option "append" was introduced --- if it's turned on, stdout will be appended to the file, instead of rewriting it (this is how it was before).}
-% \changes{0.7.0}{2022/09/25}{The option ``\texttt{log}'' was introduced, to turn on log/debug messages in TeX log (they were all visible always, which was sometimes annoying. Also, this option enables printing of the entire content of stdout to the log too (this may be pretty convenient for debugging).}
-% \changes{0.11.0}{2022/10/22}{The option ``\texttt{exit}'' allows to change the name of the file with exit code.}
-% \changes{0.12.0}{2023/10/12}{The option ``\texttt{unskip}'' adds \texttt{\char`\\unskip} after each \texttt{\char`\\iexec}, in order to trip the tailing end of line space.}
+% Then, we prepare to parse the options of the |\iexec| command, with the help
+% of \href{https://ctan.org/pkg/pgfkeys}{pgfkeys}:
% \begin{macrocode}
\RequirePackage{pgfkeys}
\makeatletter\pgfkeys{
@@ -308,6 +320,7 @@
unskip/.store in = \iexec at unskip,
quiet/.store in = \iexec at quiet,
ignore/.store in = \iexec at ignore,
+ maybe/.store in = \iexec at maybe,
stdout,exit
}\makeatother
% \end{macrocode}
@@ -336,6 +349,11 @@
% Then, we define |\iexec| command.
% It is implemented with the help of |\ShellEscape| from |shellesc| package:
% \changes{0.10.0}{2022/10/19}{The file "iexec.ret" is reused for all scripts.}
+% \changes{0.10.0}{2022/10/19}{The option ``\texttt{ignore}'' suppresses the checking of ``\texttt{iexec.ret}'' value.}
+% \changes{0.7.0}{2022/09/25}{The option "append" was introduced --- if it's turned on, stdout will be appended to the file, instead of rewriting it (this is how it was before).}
+% \changes{0.7.0}{2022/09/25}{The option ``\texttt{log}'' was introduced, to turn on log/debug messages in TeX log (they were all visible always, which was sometimes annoying. Also, this option enables printing of the entire content of stdout to the log too (this may be pretty convenient for debugging).}
+% \changes{0.11.0}{2022/10/22}{The option ``\texttt{exit}'' allows to change the name of the file with exit code.}
+% \changes{0.12.0}{2023/10/12}{The option ``\texttt{unskip}'' adds \texttt{\char`\\unskip} after each \texttt{\char`\\iexec}, in order to trip the tailing end of line space.}
% \begin{macrocode}
\makeatletter
\newread\iexec at exitfile
@@ -346,26 +364,23 @@
% First, we verify that |latex| is running with |--shell-escape| option, since without
% it nothing will work; so, it's better to throw an error earlier than later:
% \begin{macrocode}
- \ifnum\ShellEscapeStatus=1\else%
- \PackageError{iexec}{You must run TeX processor with
- --shell-escape option}{}%
- \fi%
- \begingroup%
+ \ifnum\ShellEscapeStatus=1%
+ \begingroup%
% \end{macrocode}
% Then, we start the log from a clean line:
% \begin{macrocode}
- \ifdefined\iexec at log%
- \message{^^J}%
- \fi%
+ \ifdefined\iexec at log%
+ \message{^^J}%
+ \fi%
% \end{macrocode}
% Then, we define a few special chars in order to escape them in the shell
% (the full
% list of them is in \href{https://ctan.mirror.norbert-ruehl.de/info/macros2e/macros2e.pdf}{macros2e}):
% \begin{macrocode}
- \let\%\@percentchar%
- \let\\\@backslashchar%
- \let\{\@charlb%
- \let\}\@charrb%
+ \let\%\@percentchar%
+ \let\\\@backslashchar%
+ \let\{\@charlb%
+ \let\}\@charrb%
% \end{macrocode}
% Then, we execute it and save exit code into a file (where we also add \texttt{\%} in order to trim the content to exactly one number, as suggested \href{https://tex.stackexchange.com/questions/662756}{here}):
% \changes{0.10.0}{2022/10/19}{The ability to track exit code was added. Now, the code is saved into ``\texttt{iexec.ret}'' file, which is then read and checked for zero value.}
@@ -376,118 +391,132 @@
% \changes{0.11.3}{2022/10/29}{Bug fixed, because of which we had an extra leading space.}
% \changes{0.11.4}{2022/11/01}{In this version we escape dollar sign with \texttt{\char`\\string} command.}
% \begin{macrocode}
- \def\iexec at cmd{(#2)
- \ifdefined\iexec at append>\fi>
- \ifdefined\iexec at null/dev/null\else\iexec at stdout\fi
- \space\ifdefined\iexec at stderr2>\iexec at stderr\else2>&1\fi;
- /bin/echo -n \string$?\% >\iexec at exit}%
- \ShellEscape{\iexec at cmd}%
+ \def\iexec at cmd{(#2)
+ \ifdefined\iexec at append>\fi>
+ \ifdefined\iexec at null/dev/null\else\iexec at stdout\fi
+ \space\ifdefined\iexec at stderr2>\iexec at stderr\else2>&1\fi;
+ /bin/echo -n \string$?\% >\iexec at exit}%
+ \ShellEscape{\iexec at cmd}%
% \end{macrocode}
% Then, a message is printed to \TeX{} log:
% \begin{macrocode}
- \ifdefined\iexec at log%
- \message{iexec: [\iexec at cmd]^^J}%
- \fi%
- \endgroup%
+ \ifdefined\iexec at log%
+ \message{iexec: [\iexec at cmd]^^J}%
+ \fi%
+ \endgroup%
% \end{macrocode}
% Then, we read back the exit code, from the file:
% \begin{macrocode}
- \immediate\openin\iexec at exitfile=\iexec at exit%
- \read\iexec at exitfile to \iexec at code%
- \immediate\closein\iexec at exitfile%
+ \immediate\openin\iexec at exitfile=\iexec at exit%
+ \read\iexec at exitfile to \iexec at code%
+ \immediate\closein\iexec at exitfile%
% \end{macrocode}
% Then, if required, we print the content of the stdout file to \TeX{} log:
% \changes{0.11.2}{2022/10/25}{If execution fails, we print the content of ``\texttt{stdout}'' anyway, even if the ``\texttt{log}'' is not turned on.}
% \begin{macrocode}
- \ifdefined\iexec at null\else%
- \IfFileExists
- {\iexec at stdout}
- {}
- {\PackageError{iexec}{The "\iexec at stdout" file is absent
- after processing, looks like some internal error}{}}%
- \ifdefined\iexec at log%
- \message{iexec: This is the content of '\iexec at stdout':^^J}%
+ \ifdefined\iexec at null\else%
\IfFileExists
{\iexec at stdout}
- {\iexec at typeout{\iexec at stdout}}
+ {}
{\PackageError{iexec}{The "\iexec at stdout" file is absent
after processing, looks like some internal error}{}}%
- \message{<EOF>^^J}%
- \else%
- \ifnum\iexec at code=0\else%
- \ifdefined\iexec at ignore\else%
- \message{iexec: See the content of '\iexec at stdout'
- after failure:^^J}%
- \iexec at typeout{\iexec at stdout}%
- \message{<EOF>^^J}%
+ \ifdefined\iexec at log%
+ \message{iexec: This is the content of '\iexec at stdout':^^J}%
+ \IfFileExists
+ {\iexec at stdout}
+ {\iexec at typeout{\iexec at stdout}}
+ {\PackageError{iexec}{The "\iexec at stdout" file is absent
+ after processing, looks like some internal error}{}}%
+ \message{<EOF>^^J}%
+ \else%
+ \ifnum\iexec at code=0\else%
+ \ifdefined\iexec at ignore\else%
+ \message{iexec: See the content of '\iexec at stdout'
+ after failure:^^J}%
+ \iexec at typeout{\iexec at stdout}%
+ \message{<EOF>^^J}%
+ \fi%
\fi%
\fi%
\fi%
- \fi%
% \end{macrocode}
% Then, we check whether it's zero or not (if not zero, we either print a message or fail the build, depending on the presence of |ignore| option):
% \begin{macrocode}
- \ifnum\iexec at code=0\else%
- \ifdefined\iexec at ignore%
- \ifdefined\iexec at log%
- \message{iexec: Execution failure ignored,
- the exit code was \iexec at code^^J}%
+ \ifnum\iexec at code=0\else%
+ \ifdefined\iexec at ignore%
+ \ifdefined\iexec at log%
+ \message{iexec: Execution failure ignored,
+ the exit code was \iexec at code^^J}%
+ \fi%
+ \else%
+ \PackageError{iexec}{Execution failure,
+ the exit code was \iexec at code}{}%
\fi%
- \else%
- \PackageError{iexec}{Execution failure,
- the exit code was \iexec at code}{}%
\fi%
- \fi%
% \end{macrocode}
% Then, we include the produced output into the current document:
% \begin{macrocode}
- \ifdefined\iexec at null\else%
- \ifdefined\iexec at quiet%
- \ifdefined\iexec at log%
- \message{iexec: Due to 'quiet' option we didn't read
- the content of '\iexec at stdout'
- \ifdefined\pdffilesize (\pdffilesize{\iexec at stdout}
- bytes)\fi^^J}%
- \fi%
- \else%
- \ifdefined\iexec at log%
- \message{iexec: We are going to include the content of
- '\iexec at stdout'\ifdefined\pdffilesize (\pdffilesize
- {\iexec at stdout} bytes)\fi...^^J}%
- \fi%
- \input{\iexec at stdout}%
- \ifdefined\iexec at unskip\unskip\fi%
- \message{iexec: The content of '\iexec at stdout'
- was included into the document^^J}%
- \fi\fi%
-% \end{macrocode}
-% Finally, we delete the file or leave it untouched:
-% \begin{macrocode}
- \ifdefined\iexec at null\else%
- \ifiexec at trace%
- \ifdefined\iexec at log%
- \message{iexec: Due to package option 'trace',
- the files '\iexec at stdout' and `\iexec at exit` were
- not deleted^^J}%
- \fi%
- \else%
- \ifdefined\iexec at traceit%
+ \ifdefined\iexec at null\else%
+ \ifdefined\iexec at quiet%
\ifdefined\iexec at log%
- \message{iexec: Due to 'trace' package option,
- the files '\iexec at stdout' and '\iexec at exit'
- were not deleted^^J}%
+ \message{iexec: Due to 'quiet' option we didn't read
+ the content of '\iexec at stdout'
+ \ifdefined\pdffilesize (\pdffilesize{\iexec at stdout}
+ bytes)\fi^^J}%
\fi%
\else%
- \ShellEscape{rm \iexec at stdout}%
\ifdefined\iexec at log%
- \message{iexec: The file '\iexec at stdout' was deleted^^J}%
+ \message{iexec: We are going to include the content of
+ '\iexec at stdout'\ifdefined\pdffilesize (\pdffilesize
+ {\iexec at stdout} bytes)\fi...^^J}%
\fi%
- \ShellEscape{rm \iexec at exit}%
+ \input{\iexec at stdout}%
+ \ifdefined\iexec at unskip\unskip\fi%
+ \message{iexec: The content of '\iexec at stdout'
+ was included into the document^^J}%
+ \fi\fi%
+% \end{macrocode}
+% Then, we delete the file or leave it untouched:
+% \begin{macrocode}
+ \ifdefined\iexec at null\else%
+ \ifdefined\iexec at trace%
\ifdefined\iexec at log%
- \message{iexec: The file '\iexec at exit' was deleted^^J}%
+ \message{iexec: Due to package option 'trace',
+ the files '\iexec at stdout' and `\iexec at exit` were
+ not deleted^^J}%
\fi%
+ \else%
+ \ifdefined\iexec at traceit%
+ \ifdefined\iexec at log%
+ \message{iexec: Due to 'trace' package option,
+ the files '\iexec at stdout' and '\iexec at exit'
+ were not deleted^^J}%
+ \fi%
+ \else%
+ \ShellEscape{rm \iexec at stdout}%
+ \ifdefined\iexec at log%
+ \message{iexec: The file '\iexec at stdout' was deleted^^J}%
+ \fi%
+ \ShellEscape{rm \iexec at exit}%
+ \ifdefined\iexec at log%
+ \message{iexec: The file '\iexec at exit' was deleted^^J}%
+ \fi%
+ \fi%
+ \fi\fi%
+% \end{macrocode}
+% \changes{0.14.0}{2024/01/14}{The \texttt{maybe} option introduced, allowing the user to skip the entire execution of the \texttt{\char`\\iexec} command, when \texttt{-shell-escape} option is off.}
+% Finally, we ignore the whole story if the |maybe| option is provided
+% and the |-shell-escape| is not set:
+% \begin{macrocode}
+ \else%
+ \ifdefined\iexec at maybe%
+ \message{iexec: The execution skipped because -shell-escape
+ is not set and 'maybe' option is provided^^J}%
+ \else%
+ \PackageError{iexec}{You must run TeX processor with
+ --shell-escape option}{}%
\fi%
- \fi\fi%
+ \fi%
\endgroup%
}\makeatother
% \end{macrocode}
Modified: trunk/Master/texmf-dist/source/latex/iexec/iexec.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/iexec/iexec.ins 2024-01-14 21:13:52 UTC (rev 69418)
+++ trunk/Master/texmf-dist/source/latex/iexec/iexec.ins 2024-01-14 21:14:04 UTC (rev 69419)
@@ -1,6 +1,6 @@
%% (The MIT License)
%%
-%% Copyright (c) 2021-2023 Yegor Bugayenko
+%% Copyright (c) 2021-2024 Yegor Bugayenko
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy
%% of this software and associated documentation files (the 'Software'), to deal
@@ -26,7 +26,7 @@
\preamble
(The MIT License)
-Copyright (c) 2021-2023 Yegor Bugayenko
+Copyright (c) 2021-2024 Yegor Bugayenko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal
Modified: trunk/Master/texmf-dist/tex/latex/iexec/iexec.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/iexec/iexec.sty 2024-01-14 21:13:52 UTC (rev 69418)
+++ trunk/Master/texmf-dist/tex/latex/iexec/iexec.sty 2024-01-14 21:14:04 UTC (rev 69419)
@@ -7,7 +7,7 @@
%% iexec.dtx (with options: `package')
%% (The MIT License)
%%
-%% Copyright (c) 2021-2023 Yegor Bugayenko
+%% Copyright (c) 2021-2024 Yegor Bugayenko
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy
%% of this software and associated documentation files (the 'Software'), to deal
@@ -31,7 +31,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{iexec}
-[2023-12-28 0.13.0 Inputable Shell Executions]
+[2024-01-14 0.14.0 Inputable Shell Executions]
@@ -50,14 +50,15 @@
+
\RequirePackage{shellesc}
-\RequirePackage{xkeyval}
-\makeatletter
-\newif\ifiexec at trace
-\DeclareOptionX{trace}{\iexec at tracetrue}
-\ProcessOptionsX\relax
-\makeatother
+\RequirePackage{pgfopts}
+\pgfkeys{
+ /iexec/.cd,
+ trace/.store in=\iexec at trace,
+}
+\ProcessPgfPackageOptions{/iexec}
\RequirePackage{pgfkeys}
\makeatletter\pgfkeys{
@@ -75,6 +76,7 @@
unskip/.store in = \iexec at unskip,
quiet/.store in = \iexec at quiet,
ignore/.store in = \iexec at ignore,
+ maybe/.store in = \iexec at maybe,
stdout,exit
}\makeatother
@@ -97,111 +99,117 @@
\newcommand\iexec[2][]{%
\begingroup%
\pgfqkeys{/iexec}{#1}%
- \ifnum\ShellEscapeStatus=1\else%
- \PackageError{iexec}{You must run TeX processor with
- --shell-escape option}{}%
- \fi%
- \begingroup%
- \ifdefined\iexec at log%
- \message{^^J}%
- \fi%
- \let\%\@percentchar%
- \let\\\@backslashchar%
- \let\{\@charlb%
- \let\}\@charrb%
- \def\iexec at cmd{(#2)
- \ifdefined\iexec at append>\fi>
- \ifdefined\iexec at null/dev/null\else\iexec at stdout\fi
- \space\ifdefined\iexec at stderr2>\iexec at stderr\else2>&1\fi;
- /bin/echo -n \string$?\% >\iexec at exit}%
- \ShellEscape{\iexec at cmd}%
- \ifdefined\iexec at log%
- \message{iexec: [\iexec at cmd]^^J}%
- \fi%
- \endgroup%
- \immediate\openin\iexec at exitfile=\iexec at exit%
- \read\iexec at exitfile to \iexec at code%
- \immediate\closein\iexec at exitfile%
- \ifdefined\iexec at null\else%
- \IfFileExists
- {\iexec at stdout}
- {}
- {\PackageError{iexec}{The "\iexec at stdout" file is absent
- after processing, looks like some internal error}{}}%
- \ifdefined\iexec at log%
- \message{iexec: This is the content of '\iexec at stdout':^^J}%
+ \ifnum\ShellEscapeStatus=1%
+ \begingroup%
+ \ifdefined\iexec at log%
+ \message{^^J}%
+ \fi%
+ \let\%\@percentchar%
+ \let\\\@backslashchar%
+ \let\{\@charlb%
+ \let\}\@charrb%
+ \def\iexec at cmd{(#2)
+ \ifdefined\iexec at append>\fi>
+ \ifdefined\iexec at null/dev/null\else\iexec at stdout\fi
+ \space\ifdefined\iexec at stderr2>\iexec at stderr\else2>&1\fi;
+ /bin/echo -n \string$?\% >\iexec at exit}%
+ \ShellEscape{\iexec at cmd}%
+ \ifdefined\iexec at log%
+ \message{iexec: [\iexec at cmd]^^J}%
+ \fi%
+ \endgroup%
+ \immediate\openin\iexec at exitfile=\iexec at exit%
+ \read\iexec at exitfile to \iexec at code%
+ \immediate\closein\iexec at exitfile%
+ \ifdefined\iexec at null\else%
\IfFileExists
{\iexec at stdout}
- {\iexec at typeout{\iexec at stdout}}
+ {}
{\PackageError{iexec}{The "\iexec at stdout" file is absent
after processing, looks like some internal error}{}}%
- \message{<EOF>^^J}%
- \else%
- \ifnum\iexec at code=0\else%
- \ifdefined\iexec at ignore\else%
- \message{iexec: See the content of '\iexec at stdout'
- after failure:^^J}%
- \iexec at typeout{\iexec at stdout}%
- \message{<EOF>^^J}%
+ \ifdefined\iexec at log%
+ \message{iexec: This is the content of '\iexec at stdout':^^J}%
+ \IfFileExists
+ {\iexec at stdout}
+ {\iexec at typeout{\iexec at stdout}}
+ {\PackageError{iexec}{The "\iexec at stdout" file is absent
+ after processing, looks like some internal error}{}}%
+ \message{<EOF>^^J}%
+ \else%
+ \ifnum\iexec at code=0\else%
+ \ifdefined\iexec at ignore\else%
+ \message{iexec: See the content of '\iexec at stdout'
+ after failure:^^J}%
+ \iexec at typeout{\iexec at stdout}%
+ \message{<EOF>^^J}%
+ \fi%
\fi%
\fi%
\fi%
- \fi%
- \ifnum\iexec at code=0\else%
- \ifdefined\iexec at ignore%
- \ifdefined\iexec at log%
- \message{iexec: Execution failure ignored,
- the exit code was \iexec at code^^J}%
+ \ifnum\iexec at code=0\else%
+ \ifdefined\iexec at ignore%
+ \ifdefined\iexec at log%
+ \message{iexec: Execution failure ignored,
+ the exit code was \iexec at code^^J}%
+ \fi%
+ \else%
+ \PackageError{iexec}{Execution failure,
+ the exit code was \iexec at code}{}%
\fi%
- \else%
- \PackageError{iexec}{Execution failure,
- the exit code was \iexec at code}{}%
\fi%
- \fi%
- \ifdefined\iexec at null\else%
- \ifdefined\iexec at quiet%
- \ifdefined\iexec at log%
- \message{iexec: Due to 'quiet' option we didn't read
- the content of '\iexec at stdout'
- \ifdefined\pdffilesize (\pdffilesize{\iexec at stdout}
- bytes)\fi^^J}%
- \fi%
- \else%
- \ifdefined\iexec at log%
- \message{iexec: We are going to include the content of
- '\iexec at stdout'\ifdefined\pdffilesize (\pdffilesize
- {\iexec at stdout} bytes)\fi...^^J}%
- \fi%
- \input{\iexec at stdout}%
- \ifdefined\iexec at unskip\unskip\fi%
- \message{iexec: The content of '\iexec at stdout'
- was included into the document^^J}%
- \fi\fi%
- \ifdefined\iexec at null\else%
- \ifiexec at trace%
- \ifdefined\iexec at log%
- \message{iexec: Due to package option 'trace',
- the files '\iexec at stdout' and `\iexec at exit` were
- not deleted^^J}%
- \fi%
- \else%
- \ifdefined\iexec at traceit%
+ \ifdefined\iexec at null\else%
+ \ifdefined\iexec at quiet%
\ifdefined\iexec at log%
- \message{iexec: Due to 'trace' package option,
- the files '\iexec at stdout' and '\iexec at exit'
- were not deleted^^J}%
+ \message{iexec: Due to 'quiet' option we didn't read
+ the content of '\iexec at stdout'
+ \ifdefined\pdffilesize (\pdffilesize{\iexec at stdout}
+ bytes)\fi^^J}%
\fi%
\else%
- \ShellEscape{rm \iexec at stdout}%
\ifdefined\iexec at log%
- \message{iexec: The file '\iexec at stdout' was deleted^^J}%
+ \message{iexec: We are going to include the content of
+ '\iexec at stdout'\ifdefined\pdffilesize (\pdffilesize
+ {\iexec at stdout} bytes)\fi...^^J}%
\fi%
- \ShellEscape{rm \iexec at exit}%
+ \input{\iexec at stdout}%
+ \ifdefined\iexec at unskip\unskip\fi%
+ \message{iexec: The content of '\iexec at stdout'
+ was included into the document^^J}%
+ \fi\fi%
+ \ifdefined\iexec at null\else%
+ \ifdefined\iexec at trace%
\ifdefined\iexec at log%
- \message{iexec: The file '\iexec at exit' was deleted^^J}%
+ \message{iexec: Due to package option 'trace',
+ the files '\iexec at stdout' and `\iexec at exit` were
+ not deleted^^J}%
\fi%
+ \else%
+ \ifdefined\iexec at traceit%
+ \ifdefined\iexec at log%
+ \message{iexec: Due to 'trace' package option,
+ the files '\iexec at stdout' and '\iexec at exit'
+ were not deleted^^J}%
+ \fi%
+ \else%
+ \ShellEscape{rm \iexec at stdout}%
+ \ifdefined\iexec at log%
+ \message{iexec: The file '\iexec at stdout' was deleted^^J}%
+ \fi%
+ \ShellEscape{rm \iexec at exit}%
+ \ifdefined\iexec at log%
+ \message{iexec: The file '\iexec at exit' was deleted^^J}%
+ \fi%
+ \fi%
+ \fi\fi%
+ \else%
+ \ifdefined\iexec at maybe%
+ \message{iexec: The execution skipped because -shell-escape
+ is not set and 'maybe' option is provided^^J}%
+ \else%
+ \PackageError{iexec}{You must run TeX processor with
+ --shell-escape option}{}%
\fi%
- \fi\fi%
+ \fi%
\endgroup%
}\makeatother
More information about the tex-live-commits
mailing list.