diff options
Diffstat (limited to 'macros/generic/lt3luabridge/lt3luabridge.tex')
-rw-r--r-- | macros/generic/lt3luabridge/lt3luabridge.tex | 407 |
1 files changed, 0 insertions, 407 deletions
diff --git a/macros/generic/lt3luabridge/lt3luabridge.tex b/macros/generic/lt3luabridge/lt3luabridge.tex deleted file mode 100644 index 0c2b8f8ddd..0000000000 --- a/macros/generic/lt3luabridge/lt3luabridge.tex +++ /dev/null @@ -1,407 +0,0 @@ -\ifx\ExplSyntaxOn\undefined - \input expl3-generic\relax -\fi -\ExplSyntaxOn -\int_const:Nn \c__luabridge_method_write_eighteen_int { 0 } -\int_const:Nn \c__luabridge_method_os_execute_int { 1 } -\int_const:Nn \c__luabridge_method_directlua_int { 2 } -\int_if_exist:NF - \g__luabridge_method_int - { - \int_new:N - \g__luabridge_method_int - \cs_if_exist:NTF - \directlua - { - \int_gset_eq:NN - \g__luabridge_method_int - \c__luabridge_method_directlua_int - } - { - \int_gset_eq:NN - \g__luabridge_method_int - \c__luabridge_method_write_eighteen_int - } - } -\msg_new:nnn - { luabridge } - { unknown-method } - { - Unknown~bridging~method:~#1 - } -\msg_new:nnn - { luabridge } - { method-write-eighteen } - { - Using~shell~escape~via~write18~as~the~bridging~method - } -\msg_new:nnn - { luabridge } - { method-os-execute } - { - Using~shell~escape~via~os.execute()~as~the~bridging~method - } -\msg_new:nnn - { luabridge } - { method-directlua } - { - Using~direct~Lua~access~as~the~bridging~method - } -\int_case:nnF - { \g__luabridge_method_int } - { - { \c__luabridge_method_write_eighteen_int } - { - \msg_info:nn - { luabridge } - { method-write-eighteen } - } - { \c__luabridge_method_os_execute_int } - { - \msg_info:nn - { luabridge } - { method-os-execute } - } - { \c__luabridge_method_directlua_int } - { - \msg_info:nn - { luabridge } - { method-directlua } - } - } - { - \msg_error:nnx - { luabridge } - { unknown-method } - { \g__luabridge_method_int } - } -\bool_if:nTF - { - \int_compare_p:nNn - { \g__luabridge_method_int } - = - { \c__luabridge_method_write_eighteen_int } || - \int_compare_p:nNn - { \g__luabridge_method_int } - = - { \c__luabridge_method_os_execute_int } - } - { - \int_const:Nn \c__luabridge_level_disabled_int { 0 } - \int_const:Nn \c__luabridge_level_enabled_int { 1 } - \int_const:Nn \c__luabridge_level_restricted_int { 2 } - \int_new:N - \g__luabridge_level_int - \cs_if_exist:NTF - \pdfshellescape - { - \int_gset:Nn - \g__luabridge_level_int - { \pdfshellescape } - } - { - \cs_if_exist:NTF - \shellescape - { - \int_gset:Nn - \g__luabridge_level_int - { \shellescape } - } - { - \int_case:nnF - { \g__luabridge_method_int } - { - { \c__luabridge_method_write_eighteen_int } - { - \int_gset_eq:NN - \g__luabridge_level_int - \c__luabridge_level_enabled_int - } - } - { - \int_gset:Nn - \g__luabridge_level_int - { - \directlua - { - tex.sprint(status.shell_escape or "1") - } - } - } - } - } - \msg_new:nnn - { luabridge } - { unknown-level } - { - Unknown~shell~escape~level:~#1 - } - \msg_new:nnnn - { luabridge } - { level-disabled } - { - Shell~escape~seems~to~be~disabled - } - { - You~may~need~to~run~TeX~with~the~--shell-escape~or~the~ - --enable-write18~flag,~or~write~shell_escape=t~in~the~ - texmf.cnf~file. - } - \msg_new:nnn - { luabridge } - { level-enabled } - { - Shell~escape~seems~to~be~enabled - } - \msg_new:nnnn - { luabridge } - { level-restricted } - { - Shell~escape~seems~to~be~restricted - } - { - You~may~need~to~run~TeX~with~the~--shell-escape~or~the~ - --enable-write18~flag,~or~write~shell_escape=t~in~the~ - texmf.cnf~file. - } - \str_const:Nn \c__luabridge_default_output_dirname_str { . } - \str_const:Nx \c__luabridge_default_helper_script_filename_str { \jobname.luabridge.lua } - \str_const:Nx \c__luabridge_default_error_output_filename_str { \jobname.luabridge.err } - \str_const:Nx \c__luabridge_default_standard_output_filename_str { \jobname.luabridge.out } - \int_case:nnF - { \g__luabridge_level_int } - { - { \c__luabridge_level_disabled_int } - { - \msg_warning:nn - { luabridge } - { level-disabled } - } - { \c__luabridge_level_enabled_int } - { - \msg_info:nn - { luabridge } - { level-enabled } - } - { \c__luabridge_level_restricted_int } - { - \msg_warning:nn - { luabridge } - { level-restricted } - } - } - { - \msg_error:nnx - { luabridge } - { unknown-level } - { \g__luabridge_level_int } - } - \cs_new:Nn - \_luabridge_assert_shell_escape: - { - \int_case:nnF - { \g__luabridge_level_int } - { - { \c__luabridge_level_disabled_int } - { - \msg_error:nn - { luabridge } - { level-disabled } - } - } - } - \int_case:nn - { \g__luabridge_method_int } - { - { \c__luabridge_method_write_eighteen_int } - { - \cs_new:Nn - \_luabridge_execute_shell:n - { - \_luabridge_assert_shell_escape: - \immediate - \write 18 - { #1 } - } - } - { \c__luabridge_method_os_execute_int } - { - \cs_new:Nn - \_luabridge_execute_shell:n - { - \_luabridge_assert_shell_escape: - \directlua - { - os.execute( - " \luaescapestring { #1 } " - ) - } - } - } - } - \str_if_exist:NF - \g__luabridge_output_dirname_str - { - \str_new:N - \g__luabridge_output_dirname_str - \tl_gset:Nn - \g__luabridge_output_dirname_str - \c__luabridge_default_output_dirname_str - } - \str_if_exist:NF - \g__luabridge_helper_script_filename_str - { - \str_gset_eq:NN - \g__luabridge_helper_script_filename_str - \c__luabridge_default_helper_script_filename_str - } - \str_if_exist:NF - \g__luabridge_error_output_filename_str - { - \str_gset_eq:NN - \g__luabridge_error_output_filename_str - \c__luabridge_default_error_output_filename_str - } - \str_if_exist:NF - \g__luabridge_standard_output_filename_str - { - \str_gset_eq:NN - \g__luabridge_standard_output_filename_str - \c__luabridge_default_standard_output_filename_str - } - \cs:w newwrite \cs_end: - \l__luabridge_output_stream - \cs_new:Nn - \_luabridge_execute:n - { - \immediate \openout - \l__luabridge_output_stream - \g__luabridge_helper_script_filename_str - \msg_info:nnV - { luabridge } - { writing-helper-script } - \g__luabridge_helper_script_filename_str - \tl_set:Nx - \l_tmpa_tl - { - local~ran_ok,~error~=~pcall(function()~ - local~ran_ok,~kpse~=~pcall(require,~"kpse")~ - if~ran_ok~then~kpse.set_program_name("luatex")~end~ - #1~ - end)~ - if~not~ran_ok~then~ - local~file~=~io.open(" - \g__luabridge_output_dirname_str / - \g__luabridge_error_output_filename_str - ",~"w")~ - if~file~then~ - file:write(error~..~" \iow_char:N \\ n ")~ - file:close()~ - end~ - print(' - \iow_char:N \\ \iow_char:N \\ begingroup - \iow_char:N \\ \iow_char:N \\ ExplSyntaxOn - \iow_char:N \\ \iow_char:N \\ msg_error:nnvv - { luabridge } - { failed-to-execute } - { g__luabridge_output_dirname_str } - { g__luabridge_output_dirname_str } - \iow_char:N \\ \iow_char:N \\ endgroup - ')~ - end - } - \immediate \write - \l__luabridge_output_stream - { \exp_not:V \l_tmpa_tl } - \immediate \closeout - \l__luabridge_output_stream - \msg_info:nnVV - { luabridge } - { executing-helper-script } - \g__luabridge_helper_script_filename_str - \g__luabridge_standard_output_filename_str - \tl_set:Nx - \l_tmpa_tl - { - texlua~" - \g__luabridge_output_dirname_str / - \g__luabridge_helper_script_filename_str - "~>~" - \g__luabridge_output_dirname_str / - \g__luabridge_standard_output_filename_str - " - } - \_luabridge_execute_shell:V - \l_tmpa_tl - \file_if_exist_input:VF - \g__luabridge_standard_output_filename_str - { - \msg_error:nn - { luabridge } - { level-disabled } - } - } - \cs_generate_variant:Nn - \msg_info:nnn - { nnV } - \cs_generate_variant:Nn - \msg_info:nnnn - { nnVV } - \cs_generate_variant:Nn - \msg_error:nnnn - { nnvv } - \cs_generate_variant:Nn - \_luabridge_execute_shell:n - { V } - \prg_generate_conditional_variant:Nnn - \file_if_exist_input:n - { V } - { F } - \msg_new:nnn - { luabridge } - { writing-helper-script } - { - Writing~a~helper~Lua~script~to~file~#1 - } - \msg_new:nnn - { luabridge } - { executing-helper-script } - { - Executing~a~helper~Lua~script~from~file~#1~ - and~storing~the~result~in~file~#2 - } - \msg_new:nnnn - { luabridge } - { failed-to-execute } - { - An~error~was~encountered~while~executing~Lua~code - } - { - For further clues, examine file #1/#2 - } - } - { - \cs_new:Nn - \_luabridge_execute:n - { - \directlua - { - local~function~print(input)~ - input~=~tostring(input)~ - local~output~=~{}~ - for~line~in~input:gmatch("[^ - \iow_char:N \\ r - \iow_char:N \\ n - ]+")~do~ - table.insert(output,~line)~ - end~ - tex.print(output)~ - end~ - #1 - } - } - } -\cs_new_protected:Npn - \luabridgeExecute - { \_luabridge_execute:n } -\ExplSyntaxOff |