Comunidad Gambas-es
Error en función con Shell - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html)
+--- Tema: Error en función con Shell (/thread-494.html)



Error en función con Shell - alberto-moyano - 01-07-2021

Hola grupo, tengo la siguiente situación, varias funciones que utilizan una llamada a shell se ejecutan sin problemas, menos una, todas estas funciones si las ejecuto por consola, no dan ningún error, la única que que falla tiene como situación diferente al observarla que tarda más tiempo en terminar de ejecutarse (unos 2 minutos hasta que termina y genera el resultado), esto me lleva a suponer que por ahí pasa el problema, pero no lo sé con seguridad.

Este es código de 2 de las 5, el primero es que que falla.

Código:
Public Sub menuAscii3_Click()

  guardarARCHIVO()

  Dim orden As Process

  orden = Shell "asciidoctor" & " " & "-r" & " " & "asciidoctor-bibliography" & " " & ruta Wait

End

Public Sub menuAscii4_Click()

  guardarARCHIVO()

  Dim orden As Process

  orden = Shell "asciidoctor" & " " & "-b" & " " & "docbook" & " " & ruta Wait

End

Gracias de antemano por cualquier ayuda

Hago una ampliación al post anterior.

Asciidoctor es una gema de Ruby las lineas que siguen son opciones de uso dentro de la gema, por eso llevan indicado -b y a continuación va el nombre de la opción, mientras que asciidoctor-bibliography es otra gema, por eso se la llama con la opción -r.

Pero en consola todo funciona


RE: Error en función con Shell - jguardon - 01-07-2021

No lo he probado, pero así de repente, leyendo el manpage de asciidoctor parece que te falta indicar el parámetro -o para la ruta de salida.

Puede que no influya, pero es lo único raro que veo, aparte de tantas comillas y &. Se podría haber escrito así:

[code]

Prueba también con y sin Wait por si hay alguna diferencia, aparte de dejar congelado el GUI mientras dura el proceso.

Saludos


RE: Error en función con Shell - alberto-moyano - 01-07-2021

Hola, el -o es si queres cambiar la ruta de salida por default que es el mismo directorio donde está el archivo de origen, que no es mi caso.

El proceso no queda congelado, termina sin construir la salida y en el webview donde debe refejarse me tira el error de que no encontró el archivo x.html que debe generar.

Probé con Wait (con valores y sin valores) y sin Wait

Gracias


RE: Error en función con Shell - tincho - 01-07-2021

(01-07-2021, 00:10)alberto-moyano escribió: orden = Shell "asciidoctor" & " " & "-r" & " " & "asciidoctor-bibliography" & " " & ruta Wait

Hola Alberto, sugiero que no uses "unProceso = Shell el-comanto Wait" sino "Shell el-comanto Wait"

Código:
command = "asciidoctor -r asciidoctor-bibliography '" & ruta &"'"
Shell command wait
La comilla simple es por si en la ruta del archivo hay espacios o cosas por el estilo.
Saludos.


RE: Error en función con Shell - alberto-moyano - 01-07-2021

Hola Tincho, no hay caso, paso dos capturas de pantalla, en una se ve que el comando lo hago por consola y obtengo el resultado y la consola queda liberada, en la otra imagen se observa el mensaje de error que tira el webview de no encontrar el archivo (porque la instrucción no lo construyo).

En este caso incluso utilizo bibtex que es más ligero que biblatex

Seguiremos leyendo a ver por donde viene el tiro.


RE: Error en función con Shell - tincho - 02-07-2021

Alberto, creo que el problema puede solucionarse si pasas la ruta completa del archivo no la relativa.
Por ejemplo:
Código:
    command = "asciidoctor -r asciidoctor-bibliography '/home/alberto/libro-completo.adoc'"
    Shell command wait