Check if a port is in use

Test:

Ran a separate server on port 3000

```
Checking if port 3000 is free...
Extracting translateable strings from files...
Loading translation files...
Generating Metadata for Docs....
Generating Metadata for Docs....
server.js triggered...
Generating Metadata for Docs....
Extracting translateable strings from files...
listening on port: 3000
Open http://localhost:3000/
Port 3000 is in use
```

Fixes #124
This commit is contained in:
Joel Marcey 2017-10-23 18:27:21 -07:00
parent 58613545b6
commit 7bad58022c
2 changed files with 24 additions and 9 deletions

View file

@ -8,22 +8,25 @@
*/ */
require("babel-register")({ require("babel-register")({
babelrc: false, babelrc: false,
only: [__dirname, process.cwd() + "/core"], only: [__dirname, process.cwd() + "/core"],
plugins: [require("./server/translate-plugin.js")], plugins: [require("./server/translate-plugin.js")],
presets: ["react", "env"] presets: ["react", "env"]
}); });
// For verifying port usage
const tcpPortUsed = require('tcp-port-used');
// initial check that required files are present // initial check that required files are present
const chalk = require("chalk"); const chalk = require("chalk");
const fs = require("fs"); const fs = require("fs");
const CWD = process.cwd(); const CWD = process.cwd();
if (!fs.existsSync(CWD + "/siteConfig.js")) { if (!fs.existsSync(CWD + "/siteConfig.js")) {
console.error( console.error(
chalk.red("Error: No siteConfig.js file found in website folder!") chalk.red("Error: No siteConfig.js file found in website folder!")
); );
process.exit(1); process.exit(1);
} }
const program = require("commander"); const program = require("commander");
@ -32,6 +35,17 @@ program.option("--port <number>", "Specify port number").parse(process.argv);
const port = program.port || 3000; const port = program.port || 3000;
console.log("Checking if port " + port + " is free...");
tcpPortUsed.check(port, "localhost")
.then(function(inUse) {
if (inUse) {
console.error(
chalk.red("Port " + port + " is in use")
);
process.exit(1);
}
});
// start local server on specified port // start local server on specified port
const server = require("./server/server.js"); const server = require("./server/server.js");
server(port); server(port);

View file

@ -20,7 +20,8 @@
"react-dom-factories": "^1.0.1", "react-dom-factories": "^1.0.1",
"request": "^2.81.0", "request": "^2.81.0",
"shelljs": "^0.7.8", "shelljs": "^0.7.8",
"sitemap": "^1.13.0" "sitemap": "^1.13.0",
"tcp-port-used": "^0.1.2"
}, },
"name": "docusaurus", "name": "docusaurus",
"version": "1.0.0-beta.5", "version": "1.0.0-beta.5",