Compare commits

...

18 commits

Author SHA1 Message Date
Todd Treece
83cdba7806 1.1.1 2017-03-05 10:11:51 -05:00
Todd Treece
78b7f289b7 Merge pull request #1 from peet86/master
wrong execution path for index.js - fixed
2017-03-04 15:11:02 -05:00
Peter Varga
d720686048 wrong execution path for index.js - fixed 2016-11-27 14:29:14 +01:00
Todd Treece
af0a6f4087 1.1.0 2016-11-10 11:11:48 -05:00
Todd Treece
bd3bd90121 update install instructions in README 2016-11-10 11:11:29 -05:00
Todd Treece
156b36c67d replace forever with pm2 2016-11-10 11:11:14 -05:00
Todd Treece
26e1a00c4f 1.0.10 2015-08-18 12:57:26 -04:00
Todd Treece
3b801b1680 adds new tutorial link to readme 2015-08-18 12:57:16 -04:00
Todd Treece
5e401b0d27 1.0.9 2015-08-18 09:06:49 -04:00
Todd Treece
09d6278ae4 exit cli process when spawned child exits 2015-08-18 09:06:00 -04:00
Todd Treece
c78ca3ac69 1.0.8 2015-08-18 07:09:47 -04:00
Todd Treece
1dc0dd75d4 attempt to fix npmjs.com readme code formatting issue 2015-08-18 07:09:09 -04:00
Todd Treece
45e24168bb 1.0.7 2015-08-18 06:51:19 -04:00
Todd Treece
2d024e0510 adds guide link to readme 2015-08-18 06:50:59 -04:00
Todd Treece
e62edcc175 1.0.6 2015-08-17 19:30:04 -04:00
Todd Treece
5aa8eca4ea fix xcarve hostname on windows 2015-08-17 19:29:42 -04:00
Todd Treece
4f9093f403 1.0.5 2015-08-17 19:03:29 -04:00
Todd Treece
90fa98b773 adds platform check for cli command 2015-08-17 19:03:15 -04:00
5 changed files with 46 additions and 32 deletions

View file

@ -1,25 +1,26 @@
# XCarve Proxy # XCarve Proxy
A Node.js proxy server for connecting to a remote XCarve via a Raspberry Pi that is running [xcarve-server][1]. A Node.js proxy server for connecting to a remote XCarve via a Raspberry Pi that is running [xcarve-server][1].
For detailed install instructions, please visit the tutorial on the [Adafruit Learning System][4].
## Installation ## Installation
Make sure you have the latest stable version of [Node.js][3] installed on your computer. Make sure you have the latest stable version of [Node.js][3] installed on your computer.
``` ```console
$ node -v $ node -v
v0.12.6 v7.0.0
``` ```
Install `forever` and `xcarve-proxy` on your computer using `npm`. Install `xcarve-proxy` on your computer using `npm`.
``` ```console
$ npm install -g forever xcarve-proxy $ npm install -g xcarve-proxy
``` ```
## Starting the Proxy ## Starting the Proxy
Make sure you have [xcarve-server][1] running on your Raspberry Pi before continuing. If everything has Make sure you have [xcarve-server][1] running on your Raspberry Pi before continuing. If everything has
been setup properly, you can start the proxy daemon by running the following command: been setup properly, you can start the proxy daemon by running the following command:
``` ```console
$ xcarve-proxy start $ xcarve-proxy start
██╗ ██╗ ██████╗ █████╗ ██████╗ ██╗ ██╗███████╗ ██╗ ██╗ ██████╗ █████╗ ██████╗ ██╗ ██╗███████╗
@ -32,17 +33,17 @@ $ xcarve-proxy start
starting proxy on port 1338... starting proxy on port 1338...
``` ```
Visit [easel.inventables.com][2] to test out the proxy. Visit [easel.inventables.com][2] to test the proxy.
## Stopping the Proxy ## Stopping the Proxy
``` ```console
$ xcarve-proxy stop $ xcarve-proxy stop
stopping proxy... stopping proxy...
``` ```
## License ## License
Copyright (c) 2015 Adafruit Industries. Licensed under the MIT license. Copyright (c) 2015-2016 Adafruit Industries. Licensed under the MIT license.
Adafruit invests time and resources providing this open source code, Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing products please support Adafruit and open-source hardware by purchasing products
@ -51,3 +52,4 @@ from [Adafruit](https://adafruit.com)!
[1]: https://github.com/adafruit/xcarve-server [1]: https://github.com/adafruit/xcarve-server
[2]: http://easel.inventables.com [2]: http://easel.inventables.com
[3]: https://nodejs.org [3]: https://nodejs.org
[4]: https://learn.adafruit.com/control-an-xcarve-cnc-machine-wirelessly-with-a-raspberry-pi

46
cli
View file

@ -1,41 +1,52 @@
#!/usr/bin/env node #!/usr/bin/env node
var spawn = require('child_process').spawn, var pm2 = require('pm2'),
fs = require('fs'), fs = require('fs'),
path = require('path'), path = require('path'),
logo = fs.readFileSync(path.join(__dirname,'logo.txt'), 'utf8'), logo = fs.readFileSync(path.join(__dirname,'logo.txt'), 'utf8'),
cli = require('commander'), cli = require('commander'),
package = require('./package.json'); package = require('./package.json');
function start() { function start() {
process.chdir(path.normalize(__dirname)); console.log(logo);
var child = spawn('forever', ['start', '-c', 'node', 'index.js', '-s'], { pm2.connect((err) => {
env: process.env,
detached: true if(err) {
console.error(err);
process.exit(2);
}
pm2.start({
script: path.join(__dirname,'index.js'),
name: 'xcarve'
}, (err, apps) => {
pm2.disconnect();
if (err) throw err
console.log('starting proxy on port 1338...\n');
}); });
console.log(logo); });
console.log('starting proxy on port 1338...');
child.on('error', console.log);
} }
function stop() { function stop() {
process.chdir(path.normalize(__dirname)); pm2.connect((err) => {
var child = spawn('forever', ['stop', '-c', 'node', 'index.js', '-s'], { if(err) {
env: process.env, console.error(err);
detached: true process.exit(2);
}
pm2.stop('xcarve', (err) => {
if(err) throw err;
console.log('stopping proxy...');
process.exit();
}); });
console.log('stopping proxy...'); });
child.on('error', console.log);
} }
@ -47,4 +58,3 @@ cli.parse(process.argv);
if (!process.argv.slice(2).length) { if (!process.argv.slice(2).length) {
cli.outputHelp(); cli.outputHelp();
} }

View file

@ -1,6 +1,6 @@
var util = require('util'), var util = require('util'),
httpProxy = require('http-proxy'), httpProxy = require('http-proxy'),
host = 'xcarve.local', host = (process.platform === 'win32' ? 'xcarve' : 'xcarve.local'),
port = 1338; port = 1338;
var server = httpProxy.createServer({ var server = httpProxy.createServer({

View file

@ -1,3 +1,4 @@
██╗ ██╗ ██████╗ █████╗ ██████╗ ██╗ ██╗███████╗ ██╗ ██╗ ██████╗ █████╗ ██████╗ ██╗ ██╗███████╗
╚██╗██╔╝ ██╔════╝██╔══██╗██╔══██╗██║ ██║██╔════╝ ╚██╗██╔╝ ██╔════╝██╔══██╗██╔══██╗██║ ██║██╔════╝
╚███╔╝█████╗██║ ███████║██████╔╝██║ ██║█████╗ ╚███╔╝█████╗██║ ███████║██████╔╝██║ ██║█████╗

View file

@ -1,6 +1,6 @@
{ {
"name": "xcarve-proxy", "name": "xcarve-proxy",
"version": "1.0.4", "version": "1.1.1",
"description": "A Node.js proxy server for connecting to a Raspberry Pi that is running xcarve-server.", "description": "A Node.js proxy server for connecting to a Raspberry Pi that is running xcarve-server.",
"bin": "./cli", "bin": "./cli",
"scripts": { "scripts": {
@ -24,6 +24,7 @@
"homepage": "https://github.com/adafruit/xcarve-proxy", "homepage": "https://github.com/adafruit/xcarve-proxy",
"dependencies": { "dependencies": {
"commander": "^2.8.1", "commander": "^2.8.1",
"http-proxy": "^1.11.1" "http-proxy": "^1.11.1",
"pm2": "^2.1.4"
} }
} }