[pyar] ayrton - a shell like language with the power of python.

Marcos Dione mdione en grulic.org.ar
Dom Sep 8 13:06:32 ART 2013


On Sun, Sep 08, 2013 at 10:26:27AM -0300, Andres Riancho wrote:
> 2013/9/8 Marcos Dione <mdione en grulic.org.ar>:
> >
> >     Buenas, gente. Desde hace un par de años vengo soñando con
> > un shell scripting language que tenga mucho mejor manejo de datos que los
> > actuales (hint: sólo soportan enteros y el manoseo de strings se hace mas
> > bien basado en sed, awk, grep, cut y similares) y, principalmente, que
> > tenga un lindo soporte de ejecución de bloques de código remotamente a
> > través de ssh.
> >
> >     Bueno, en resumen, no existe.
> 
> No se si existe 100% de lo que necesitas, pero Fabric esta realmente
> muy cerca, ver los links debajo

    fabric es un poco distinto. primero, las funciones para ejecutar
cosas son las que mencionás:

> http://fabric.readthedocs.org/en/1.0.1/api/core/operations.html#fabric.operations.run
> http://fabric.readthedocs.org/en/1.0.1/api/core/operations.html#fabric.operations.sudo
> http://fabric.readthedocs.org/en/1.0.1/api/core/operations.html#fabric.operations.local

    en mi caso me acerco a sh, donde los ejecutables se ven como
funciones. a diferencia de sh, las funciones no tenés que predeclararlas
haciendo «from sh import ls» o o «import sh; sh.ls (...)». en ayrton
simplemente decís «ls (...)» y te encuentra el ejecutable solo. de
vuelta, notar que la idea es que sea un lenguaje muy parecido a python
pero no lo es.

    otra cosa es que lo que podés ejecutar local o remotamente en fabvric
son, bueno, ejecutable. en ayrton lo que podés ejecutar es código ayrton,
que, salvo por lo que dije antes, es tan parecido a python que puedo a
llegar a decir que lo que podés ejecutar remotamente es python. mirá este
otro ejemplo:

    a= 42
    with ssh (...) as streams:
	b= input ('ingrese un número\n')
	print (a+int (b))

    streams[1].write (bytes ('%d\n' % 10, 'ascii'))
    print (streams[0].readlines ())

la salida:

    [b'ingrese un n\xc3\xbamero\n', b'52\n']

me doy cuenta que la interfaz está un poco tosca por el momento,
pero tengo ganas de empezar a pulirla inmediatamente.

> http://fabric.readthedocs.org/en/1.3.3/api/core/context_managers.html#fabric.context_managers.cd

    si, chorié la idea de ahí :) también miré sh, salt, iterpipes, y
otros que se me escapan hora. este mañana me recomendaron plumbum, que
casi implemeta ideas que ya tenía dando vueltas (pipes, redirección), 
pero que para implementarlas como yo quiero requiereun poco (más) de 
toqueteo del AST.

-- 
(Not so) Random fortune:
Tact, n.:
        The unsaid part of what you're thinking.


More information about the pyar mailing list