MacOS compatibility

This commit is contained in:
Benjamin DROUARD committed 2021-03-05 17:31:14 +01:00
1 parent 641d8e9fc5
commit b78eafaedb
2 files changed
+41 -3

No files matched your search

+24
View File
@@ -35,6 +35,7 @@ the [1.2.x branch][1.2.x] for instructions on how to install the stable version.
* [Plugins](#plugins)
* [Ubuntu setup](#ubuntu-setup)
* [Windows setup](#windows-setup)
* [MacOS setup](#macos-setup)
* [Installing Plugins](#installing-plugins)
* [Configure Master Server](#configure-master-server)
* [Hosting Behind Proxy](#hosting-behind-proxy)
@@ -180,6 +181,29 @@ up, and v10.16.0+.
3. Go to the parent folder of the folder that Steam opened and copy
the Factorio folder into the factorio folder created in step 1.
## MacOS Setup
**Requirements**
download and install nodeJS 12 from http://nodejs.org or brew (`brew install node`). Clusterio runs on Node.js v12 and
up, and v10.16.0+.
1. Open Terminal or Command prompt in the directory you want to install to and run the following commands.
```bash
mkdir clusterio
cd clusterio
npm init -y
npm install @clusterio/master @clusterio/slave @clusterio/ctl
```
2. Obtain Factorio:
Install Factorio and copy the factorio.app in your clusterio install folder as factorio.
If you installed factorio on your mac you can run
```bash
cp /Applications/factorio.app/ factorio
```
## Installing Plugins
+17 -3
View File
@@ -832,7 +832,7 @@ class FactorioServer extends events.EventEmitter {
await this._writeConfigIni();
this._server = child_process.spawn(
this.dataPath("..", "bin", "x64", "factorio"),
this.getBinaryPath(),
[
"--config", this.writePath("config.ini"),
"--create", this.writePath("saves", name),
@@ -857,6 +857,20 @@ class FactorioServer extends events.EventEmitter {
}
}
/**
* Get Factorio binary path
*
* Get the path to the factorio binary depending on the platform (MacOS support)
*
* @return {string} path to factorio binary
*/
getBinaryPath() {
if (process.platform === "darwin") {
return this.dataPath("..", "MacOS", "factorio");
}
return this.dataPath("..", "bin", "x64", "factorio");
}
/**
* Start server
*
@@ -871,7 +885,7 @@ class FactorioServer extends events.EventEmitter {
await this._writeConfigIni();
this._server = child_process.spawn(
this.dataPath("..", "bin", "x64", "factorio"),
this.getBinaryPath(),
[
"--config", this.writePath("config.ini"),
"--start-server", this.writePath("saves", save),
@@ -906,7 +920,7 @@ class FactorioServer extends events.EventEmitter {
await this._writeConfigIni();
this._server = child_process.spawn(
this.dataPath("..", "bin", "x64", "factorio"),
this.getBinaryPath(),
[
"--config", this.writePath("config.ini"),
"--start-server-load-scenario", scenario,