===
start web server
%require
===
npx -y serve -p 8599 "$CCTR_FIXTURE_DIR" &>/tmp/plwr-serve.log &
echo $! > /tmp/plwr-serve.pid
for i in $(seq 1 100); do curl -s http://localhost:8599 >/dev/null && exit 0; sleep 0.2; done
exit 1
---

===
start echo header server
%require
===
node -e "require('http').createServer((q,r)=>{r.writeHead(200,{'Content-Type':'application/json','Access-Control-Allow-Origin':'*'});r.end(JSON.stringify(q.headers))}).listen(8598,()=>console.log('ready'))" &>/tmp/plwr-echo.log &
echo $! > /tmp/plwr-echo.pid
for i in $(seq 1 50); do curl -s http://localhost:8598 >/dev/null && exit 0; sleep 0.2; done
exit 1
---

===
start websocket echo server
%require
===
npm ls -g ws &>/dev/null || npm install -g ws &>/dev/null
NODE_PATH=$(npm root -g) node -e "
const {WebSocketServer} = require('ws');
const wss = new WebSocketServer({ port: 8597 });
wss.on('connection', ws => {
  ws.on('message', msg => ws.send(msg.toString()));
});
wss.on('listening', () => console.log('ready'));
" &>/tmp/plwr-ws.log &
echo $! > /tmp/plwr-ws.pid
sleep 0.5
---

===
start browser
%require
===
plwr -S plwr-test start
---
Started session 'plwr-test'
