#1 Le 11/01/2020, à 13:51
- moths-art
Partage script serveur local avec port HTTP aléatoire
Bonjour,
J'utilise assez régulièrement un petit utilitaire qui permet de transformer son espace de travail en serveur web : https://github.com/brson/basic-http-server
Avant, j'utilisais :
python3 -m http.server
C'est sympa et rapide mais quand on en utilise plusieurs en simultané, on a des soucis de conflit sur les ports HTTP.
Du coup, je me suis créé un petit script python qui va choisir aléatoirement un port, vérifier qu'il n'est pas dans la liste déjà utilisé et l'attribuer.
C'est simple, ça ne va pas révolutionner le monde mais je partage.
Le code python qui va renvoyer un port :
#!/usr/bin/python3
#coding=utf-8
import random
from subprocess import Popen, PIPE
def generator():
return random.randint(1000, 65535)
if __name__ == "__main__":
pattern = 'localhost:'
p1 = Popen(["netstat", "-a", "-o"], stdout=PIPE)
p2 = Popen(["grep", pattern], stdin=p1.stdout, stdout=PIPE)
p1.stdout.close()
output = p2.communicate()[0]
list_ports = []
for line in output.split('\n'):
if not line.startswith('tcp'):
continue
start_match = line[line.find(pattern)::]
port = start_match[len(pattern):start_match.find(' ')]
try:
list_ports.append(int(port))
except:
pass
while True:
port = generator()
if port not in list_ports:
print(port)
exit()
Si on veut se créer un alias sur son bashrc ou zshrc :
http_localhost_server() {
basic-http-server -a 127.0.0.1:`python $SCRIPTS_PATH/http_localhost.py`;
}
Voilà, enjoy
Dernière modification par moths-art (Le 16/01/2020, à 21:55)
Site : https://mothsart.github.io Dépôts Git : https://github.com/mothsart PPAs : https://launchpad.net/~jerem-ferry
Hors ligne
#2 Le 11/01/2020, à 14:09
- Watael
Re : Partage script serveur local avec port HTTP aléatoire
sauf que, ce n'est pas un alias; c'est une fonction.
un alias, ce serait :
alias http_localhost_server='$(which basic-http-server) -a 127.0.0.1:$($(which python) "$scriptsPath/http_locahost.py"'
pas testé (!), mais c'est l'idée.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 11/01/2020, à 14:23
- moths-art
Re : Partage script serveur local avec port HTTP aléatoire
Je suis dac @Watavel, j'ai hésité à changer en alias. Après la finalité est la même.
Pour ma part, dans mon .zshrc je fais d'autre choses dans ma fonction donc je le l'ai volontairement allégé ici mais je ne peux pas utiliser un simple alias.
Site : https://mothsart.github.io Dépôts Git : https://github.com/mothsart PPAs : https://launchpad.net/~jerem-ferry
Hors ligne