Browse Source

Initial commit

master
Sven Slootweg 5 years ago
parent
commit
a61d0380f8
  1. 3
      .gitignore
  2. 1
      .npmignore
  3. 21
      README.md
  4. 18
      gulpfile.js
  5. 3
      index.js
  6. 34
      package.json
  7. 14
      src/get-project-root.js
  8. 44
      src/index.js

3
.gitignore

@ -2,4 +2,5 @@
# https://help.github.com/articles/ignoring-files
# Example .gitignore files: https://github.com/github/gitignore
/bower_components/
/node_modules/
/node_modules/
/lib/

1
.npmignore

@ -0,0 +1 @@
/node_modules/

21
README.md

@ -0,0 +1,21 @@
# gulp-partial-electron
A wrapper module for managing an Electron process. Used in my Gulp presets.
## License
[WTFPL](http://www.wtfpl.net/txt/copying/) or [CC0](https://creativecommons.org/publicdomain/zero/1.0/), whichever you prefer. A donation and/or attribution are appreciated, but not required.
## Donate
My income consists largely of donations for my projects. If this module is useful to you, consider [making a donation](http://cryto.net/~joepie91/donate.html)!
You can donate using Bitcoin, PayPal, Flattr, cash-in-mail, SEPA transfers, and pretty much anything else.
## Contributing
Pull requests welcome. Please make sure your modifications are in line with the overall code style, and ensure that you're editing the files in `src/`, not those in `lib/`.
Build tool of choice is `gulp`; simply run `gulp` while developing, and it will watch for changes.
Be aware that by making a pull request, you agree to release your modifications under the licenses stated above.

18
gulpfile.js

@ -0,0 +1,18 @@
var gulp = require("gulp");
var presetES2015 = require("@joepie91/gulp-preset-es2015");
var source = ["src/**/*.js"]
gulp.task('babel', function() {
return gulp.src(source)
.pipe(presetES2015({
basePath: __dirname
}))
.pipe(gulp.dest("lib/"));
});
gulp.task("watch", function () {
gulp.watch(source, ["babel"]);
});
gulp.task("default", ["babel", "watch"]);

3
index.js

@ -0,0 +1,3 @@
'use strict';
module.exports = require("./lib");

34
package.json

@ -0,0 +1,34 @@
{
"name": "@joepie91/gulp-partial-electron",
"version": "1.0.0",
"description": "A wrapper module for managing an Electron process",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "http://git.cryto.net/joepie91/node-gulp-partial-electron.git"
},
"keywords": [
"gulp",
"partial",
"logging",
"livereload"
],
"author": "Sven Slootweg",
"license": "WTFPL",
"dependencies": {
"@joepie91/gulp-partial-run-process": "^1.0.0",
"default-value": "0.0.2",
"find-root-package": "0.0.1",
"get-project-root": "0.0.5",
"gulp-named-log": "0.0.3",
"xtend": "^4.0.1"
},
"devDependencies": {
"@joepie91/gulp-preset-es2015": "^1.0.1",
"babel-preset-es2015": "^6.6.0",
"gulp": "^3.9.1"
}
}

14
src/get-project-root.js

@ -0,0 +1,14 @@
'use strict';
const path = require("path");
const getProjectRoot = require("get-project-root");
let projectRoot;
module.exports = function () {
if (projectRoot == null) {
projectRoot = getProjectRoot();
}
return projectRoot;
}

44
src/index.js

@ -0,0 +1,44 @@
'use strict';
const path = require("path");
const xtend = require("xtend");
const runProcess = require("@joepie91/gulp-partial-run-process");
const namedLog = require("gulp-named-log");
const defaultValue = require("default-value");
const getProjectRoot = require("./get-project-root");
module.exports = function(options = {}) {
let electronLogger = namedLog("electron");
let processArguments = [projectRoot];
let environmentVariables = xtend(process.env, {
NODE_ENV: "development"
});
let electronBinary = defaultValue(options.electronBinary, () => {
return path.join(getProjectRoot(), "node_modules", ".bin", "electron");
}, {evaluate: true});
let projectRoot = defaultValue(options.projectRoot, () => {
return getProjectRoot();
}, {evaluate: true});
if (options.arguments != null && Array.isArray(options.arguments)) {
processArguments = options.arguments.concat(processArguments);
}
if (options.environmentVariables != null) {
environmentVariables = xtend(environmentVariables, options.environmentVariables);
}
var electronProcess = runProcess(electronBinary, processArguments, {
logger: electronLogger,
env: environmentVariables
});
return {
kill: electronProcess.kill.bind(electronProcess),
pid: electronProcess.pid
}
}
Loading…
Cancel
Save