domingo, septiembre 21, 2008

Compartir carpeta para LAN/Web, en forma ultra rapida, desde la consola

Este lenguaje nunca deja de sorprenderme, pero compartir la carpeta en curso... ¿con 2 (dos) líneas?

s@obelix:~/Desktop/UTN$ python

>>> import SimpleHTTPServer
>>> SimpleHTTPServer.test()
Serving HTTP on 0.0.0.0 port 8000 ... Ctrl + C to Stop
localhost - - [21/Sep 01:05:18] "GET / HTTP/1.1" 200 -
localhost - - [21/Sep 01:05:18] "GET / HTTP/1.1" 200 -
localhost - - [21/Sep 01:07:44] "GET /Informatica_afectiva.pdf.txt HTTP/1.1" 200 -


(Via shell-fu)

3 comentarios:

Manuel Muradas dijo...

Para que hacerlo en dos si lo podés hacer en una:

python -m SimpleHTTPServer

(si, es lo mismo =), pero demuestra aún más lo groso qe es el lenguaje)

Bunker Blog dijo...

Chanfle! tenes razón!

Es un archivo .py, que según locate:
/usr/lib/python2.5/SimpleHTTPServer.py

Lo que no me conocía era el modificador -m, que según el man:

-m module-name
Searches sys.path for the named
module and runs the cor‐
responding .py file as a script.

Manuel Muradas dijo...

Jejej, yo sabía que funcionaba 'magicamente' pero no me había puesto a pensar por que, o sea, en el atributo "-m". Revisando el fuente del módulo, funciona porque ejecuta el "SimpleHTTPServer.test()" si se lo llama como a un script:

if __name__ == '__main__':
test()

Entonces, sería lo mismo que hacer:
python /usr/lib/python2.5/SimpleHTTPServer.py
Gracias!