Como iniciar um servidor local e abri-lo em um navegador a partir de um script de shell

0

Eu tenho um conjunto de testes que é executado em um navegador (usando o QUnit, embora isso não seja importante). O conjunto de testes requer um servidor local em execução em uma porta específica. A execução dos testes envolve atualmente alguns passos:

  1. node test/server
  2. mude para o navegador de escolha
  3. abra o host local: 3000

Gostaria de ter um único comando que inicie o servidor e execute open localhost:3000 . Idealmente, o processo do nó permaneceria em primeiro plano para que pudesse ser morto com ^ C. Eu não entendo bem os subshells, então não tenho certeza se isso é possível.

    
por davidchambers 03.12.2012 / 07:31

2 respostas

1

Se eu entendi corretamente, você quer:

  • inicie um serviço node.js
  • inicie um navegador
  • visite o serviço no navegador

Primeiro, inicie o navegador após um determinado atraso. Em seguida, inicie o serviço e deixe-o rodar em primeiro plano. O operador de e comercial duplo força o comando "próximo" a aguardar o comando "primeiro" sair com um código 0, enquanto o único "e" comercial significa "iniciar em segundo plano". Podemos usar isso para comprar o serviço algum tempo para aquecer antes que o navegador tente acessá-lo.

#!/bin/sh
awhile=3
sleep $awhile && firefox http://localhost:3000/ & 
node netservice.js 

Se isso ajudar, você pode pensar no foo && bar & como uma chamada assíncrona que garante que o foo será concluído antes que a barra seja chamada.

    
por 03.12.2012 / 11:48
0

As instruções dizem para abrir o seu navegador de escolha, como no navegador da Web, ou seja, Firefox, Chrome, ahem ... Internet Explorer.

Os passos 2 e 3 não são linha de comando. O passo 3 é colar 'localhost: 3000' na barra de endereços do navegador. Você pode deixar o nó em execução no shell ou appen '&' que iniciaria o processo e retornaria ao prompt.

    
por 03.12.2012 / 07:39