Aller de l'Auto-Recompiler et de Recharger le Serveur sur la modification de fichier
Je sais AppEngine fait cela, mais je ne suis pas de codage.
J'ai essayé d'utiliser Guard
de Ruby monde, à écouter sur les changements sur .go
fichiers et d'exécuter les commandes suivantes:
killall foo
go build -race
./foo &
Mais il n'envoie jamais de foo
en arrière-plan, il se bloque indéfiniment.
Comment êtes-vous les gars la résolution de ce problème? Une Solution doit être multi-plateforme (GNU/Linux et Mac).
Pas vraiment un "Aller" à la question, avez-vous essayé:
merci, ça fonctionne.
nohup ./foo > /var/log/foo/out.log &
merci, ça fonctionne.
OriginalL'auteur if __name__ is None | 2013-10-26
Vous devez vous connecter pour publier un commentaire.
Un ami a écrit un simple Compilation de Démon pour aller, a fonctionné comme un charme pour mon propre petit net/http-projets.
Vous pouvez trouver le référentiel ici: https://github.com/githubnemo/CompileDaemon
Cette réponse est vieux mais CompileDaemon t-on avec
CompileDaemon -command="./MyProgram -my-options"
OriginalL'auteur krizz
Vous pouvez aussi essayer le Gin par Codegangsta. C'est le feu et oublier.
https://github.com/codegangsta/gin
EDIT:
Je préfère CompileDaemon de nos jours. Gin parfois de ne pas accepter les demandes
OriginalL'auteur Bijan
J'ai découvert récemment un réflexe outil. C'est rapide et fonctionne comme un charme. Il est très similaire à nodemon (à partir de nodejs monde) et la garde (à partir de ruby monde).
La plupart du temps je l'utilise similaire à ci-dessous:
reflex -d none -s -R vendor. -r \.go$ -- go run cmd/server/main.go
Mais il peut-être plus pratique pour avoir des options dans un fichier comme .reflex, avec un contenu comme ceci:
-d none -s -R vendor. -r \.go$
Vous avez alors juste l'exécuter comme ce
reflex $(cat .reflex) -- go run cmd/server/main.go
Vous pouvez faire la même chose à chaud "recharger" les tests:
reflex $(cat .reflex) -- go test ./... -v
Il y a aussi une option de configuration où vous pouvez spécifier un nombre de commandes que vous exécutez en même temps, mais je n'ai pas vraiment l'utiliser.
OriginalL'auteur evgeny.myasishchev
si quelqu'un est toujours à la recherche d'une solution, j'ai écrit quelques scripts shell pour ce faire et il est utilisable via un menu fixe de l'environnement, le repos https://github.com/zephinzer/golang-dev
OriginalL'auteur zephinzer
Vous pouvez utiliser
nodemon
pour cela. Il suffit de créer un nodemon.fichier json contenant votre configuration, fichiers de regarder les fichiers à ignorer, et commande à exécuter lorsqu'un fichier est modifié. Quelque chose comme cette configuration.nodemon.json
Vous avez besoin de nodejs pour que cela fonctionne.
Mais son beaucoup mieux que n'importe quel autre outil que j'ai utilisé jusqu'à présent qui sont aller spécifiques.
OriginalL'auteur pandey909