diff --git a/README.md b/README.md
index bde3de1..8e000b3 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ npm install --save greenlock-express@v3
```
```bash
-npx greenlock init --maintainer-email 'jon@example.com' --manager-config-file ./greenlock.json
+npx greenlock init --maintainer-email 'jon@example.com'
```
@@ -39,13 +39,11 @@ npx greenlock init --maintainer-email 'jon@example.com' --manager-config-file ./
"use strict";
require("greenlock-express")
- .init(function() {
- return {
- greenlock: require("./greenlock.js"),
+ .init({
+ packageRoot: __dirname,
- // whether or not to run at cloudscale
- cluster: false
- };
+ // whether or not to run at cloudscale
+ cluster: false
})
.ready(function(glx) {
var app = require("./app.js");
@@ -83,6 +81,8 @@ module.exports = require("@root/greenlock").create({
app.js
```js
+"use strict";
+
var app = function(req, res) {
res.end("Hello, Encrypted World!");
};
@@ -92,14 +92,19 @@ module.exports = app;
-```bash
-npx greenlock defaults --subscriber-email 'jon@example.com' --agree-to-terms
-```
-
```bash
npx greenlock add --subject example.com --altnames example.com
```
+
+greenlock.json
+
+```json
+{ "sites": [{ "subject": "example.com", "altnames": ["example.com"] }] }
+```
+
+
+
```bash
npm start -- --staging
```
diff --git a/greenlock-shim.js b/greenlock-shim.js
index 77687b4..e009de7 100644
--- a/greenlock-shim.js
+++ b/greenlock-shim.js
@@ -1,11 +1,8 @@
"use strict";
-var path = require("path");
-var fs = require("fs");
-
module.exports.create = function(opts) {
var Greenlock = require("@root/greenlock");
- var Init = require("./init.js");
+ var Init = require("@root/greenlock/init.js");
var greenlock = opts.greenlock;
/*
@@ -24,6 +21,7 @@ module.exports.create = function(opts) {
opts = Init._init(opts);
greenlock = Greenlock.create(opts);
}
+ opts.packageAgent = addGreenlockAgent(opts);
try {
if (opts.notify) {
@@ -59,3 +57,14 @@ module.exports.create = function(opts) {
return greenlock;
};
+
+function addGreenlockAgent(opts) {
+ // Add greenlock as part of Agent, unless this is greenlock
+ var packageAgent = opts.packageAgent || "";
+ if (!/greenlock(-express|-pro)?/i.test(packageAgent)) {
+ var pkg = require("./package.json");
+ packageAgent += " Greenlock_Express/" + pkg.version;
+ }
+
+ return packageAgent.trim();
+}
diff --git a/init.js b/init.js
deleted file mode 100644
index 007ce1b..0000000
--- a/init.js
+++ /dev/null
@@ -1,131 +0,0 @@
-"use strict";
-
-var Init = module.exports;
-
-var fs = require("fs");
-var path = require("path");
-
-Init.init = function(opts) {
- //var Rc = require("@root/greenlock/rc");
- var Rc = require("./rc.js");
- var pkgText;
- var pkgErr;
- var msgErr;
- //var emailErr;
- var realPkg;
- var userPkg;
- var myPkg = {};
- // we want to be SUPER transparent that we're reading from package.json
- // we don't want anything unexpected
- var implicitConfig = [];
-
- if (opts.packageRoot) {
- try {
- pkgText = fs.readFileSync(path.resolve(opts.packageRoot, "package.json"), "utf8");
- } catch (e) {
- pkgErr = e;
- console.warn("`packageRoot` should be the root of the package (probably `__dirname`)");
- }
- }
-
- if (pkgText) {
- try {
- realPkg = JSON.parse(pkgText);
- } catch (e) {
- pkgErr = e;
- }
- }
-
- userPkg = opts.package;
-
- if (realPkg || userPkg) {
- userPkg = userPkg || {};
- realPkg = realPkg || {};
-
- // build package agent
- if (!opts.packageAgent) {
- // name
- myPkg.name = userPkg.name;
- if (!myPkg.name) {
- myPkg.name = realPkg.name;
- implicitConfig.push("name");
- }
-
- // version
- myPkg.version = userPkg.version;
- if (!myPkg.version) {
- myPkg.version = realPkg.version;
- implicitConfig.push("version");
- }
- if (myPkg.name && myPkg.version) {
- opts.packageAgent = myPkg.name + "/" + myPkg.version;
- }
- }
-
- // build author
- myPkg.author = opts.maintainerEmail;
- if (!myPkg.author) {
- myPkg.author = (userPkg.author && userPkg.author.email) || userPkg.author;
- }
- if (!myPkg.author) {
- implicitConfig.push("author");
- myPkg.author = (realPkg.author && realPkg.author.email) || realPkg.author;
- }
- opts.maintainerEmail = myPkg.author;
- }
-
- if (!opts.packageAgent) {
- msgErr = "missing `packageAgent` and also failed to read `name` and/or `version` from `package.json`";
- if (pkgErr) {
- msgErr += ": " + pkgErr.message;
- }
- throw new Error(msgErr);
- }
-
- opts.maintainerEmail = parseMaintainer(opts.maintainerEmail);
- if (!opts.maintainerEmail) {
- msgErr =
- "missing or malformed `maintainerEmail` (or `author` from `package.json`), which is used as the contact for support notices";
- throw new Error(msgErr);
- }
-
- opts.packageAgent = addGreenlockAgent(opts);
-
- if (opts.packageRoot) {
- // Place the rc file in the packageroot
- opts.configDir = Rc._initSync(opts.packageRoot, opts.configDir);
- }
-
- if (!opts.configDir) {
- throw new Error("missing `packageRoot` and `configDir`");
- }
-
- // Place the rc file in the configDir itself
- //Rc._initSync(opts.configDir, opts.configDir);
-};
-
-function addGreenlockAgent(opts) {
- // Add greenlock as part of Agent, unless this is greenlock
- var packageAgent = opts.packageAgent || "";
- if (!/greenlock(-express|-pro)?/i.test(packageAgent)) {
- var pkg = require("./package.json");
- packageAgent += " Greenlock_Express/" + pkg.version;
- }
-
- return packageAgent.trim();
-}
-
-// ex: "John Doe (https://john.doe)"
-// ex: "John Doe "
-// ex: ""
-// ex: "john@example.com"
-var looseEmailRe = /(^|[\s<])([^'" <>:;`]+@[^'" <>:;`]+\.[^'" <>:;`]+)/;
-function parseMaintainer(maintainerEmail) {
- try {
- maintainerEmail = maintainerEmail.match(looseEmailRe)[2];
- } catch (e) {
- maintainerEmail = null;
- }
-
- return maintainerEmail;
-}
diff --git a/rc.js b/rc.js
deleted file mode 100644
index 87fde7b..0000000
--- a/rc.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-
-var Rc = module.exports;
-var fs = require("fs");
-var path = require("path");
-
-Rc._initSync = function(dirname, configDir) {
- // dirname / opts.packageRoot
- var rcpath = path.resolve(dirname, ".greenlockrc");
- var rc;
-
- try {
- rc = JSON.parse(fs.readFileSync(rcpath));
- } catch (e) {
- if ("ENOENT" !== e.code) {
- throw e;
- }
- rc = {};
- }
-
- if (!configDir) {
- configDir = rc.configDir;
- }
-
- if (configDir && configDir !== rc.configDir) {
- if (rc.configDir) {
- console.info("changing `configDir` from '%s' to '%s'", rc.configDir, configDir);
- }
- rc.configDir = configDir;
- /* if (!rc.manager) { rc.manager = "@greenlock/manager"; } */
- fs.writeFileSync(rcpath, JSON.stringify(rc));
- } else if (!rc.configDir) {
- configDir = path.resolve(dirname, "greenlock.d");
- rc.configDir = configDir;
- fs.writeFileSync(rcpath, JSON.stringify(rc));
- }
-
- return configDir;
-};