From 9a03473d2e35c911e30bb19cf87efa731605d009 Mon Sep 17 00:00:00 2001
From: Lloyd Hilaiel <lloyd@hilaiel.com>
Date: Mon, 19 Dec 2011 23:09:08 -0700
Subject: [PATCH] stub an in-tree example primary

---
 example/primary/index.html       | 24 +++++++++++++++++++++
 scripts/run_locally.js           |  5 +++++
 scripts/serve_example_primary.js | 36 ++++++++++++++++++++++++++++++++
 3 files changed, 65 insertions(+)
 create mode 100644 example/primary/index.html
 create mode 100755 scripts/serve_example_primary.js

diff --git a/example/primary/index.html b/example/primary/index.html
new file mode 100644
index 000000000..92daa44e0
--- /dev/null
+++ b/example/primary/index.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; width=device-width;">
+<title>
+BrowserID Example Primary
+</title>
+<style type="text/css">
+body { margin: auto; font: 13px/1.5 Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; }
+.title { font-size: 2em; font-weight: bold; text-align: center; margin: 1.5em; }
+.intro { font-size: 1.2em; width: 600px; margin: auto; }
+</style>
+</head>
+<body>
+<div class="title">
+  Example BrowserID Primary
+</div>
+
+<div class="intro">
+  An example BrowserID Primary identity authority.  Useful for local testing and development.
+</div>
+</body>
+</html>
diff --git a/scripts/run_locally.js b/scripts/run_locally.js
index 979a85aec..3d41ef3e3 100755
--- a/scripts/run_locally.js
+++ b/scripts/run_locally.js
@@ -29,6 +29,11 @@ var daemonsToRun = {
     PORT: 10001,
     HOST: HOST
   },
+  example_primary: {
+    path: path.join(__dirname, "..", "scripts", "serve_example_primary.js"),
+    PORT: 10005,
+    HOST: HOST
+  },
   browserid: {
     PORT: 10002,
     HOST: HOST
diff --git a/scripts/serve_example_primary.js b/scripts/serve_example_primary.js
new file mode 100755
index 000000000..d4d3dd48b
--- /dev/null
+++ b/scripts/serve_example_primary.js
@@ -0,0 +1,36 @@
+#!/usr/bin/env node
+
+// finally, let's run a tiny webserver for the example code.
+const
+express = require('express'),
+path = require('path'),
+urlparse = require('urlparse'),
+postprocess = require('postprocess'),
+querystring = require('querystring');
+
+var exampleServer = express.createServer();
+
+exampleServer.use(express.logger({ format: 'dev' }));
+
+if (process.env['BROWSERID_URL']) {
+  var burl = urlparse(process.env['BROWSERID_URL']).validate().normalize().originOnly().toString();
+  console.log('using browserid server at ' + burl);
+
+  exampleServer.use(postprocess.middleware(function(req, buffer) {
+    return buffer.toString().replace(new RegExp('https://browserid.org', 'g'), burl);
+  }));
+}
+
+exampleServer.use(express.static(path.join(__dirname, "..", "example", "primary")));
+
+exampleServer.use(express.bodyParser());
+
+// XXX: implement apis here
+
+exampleServer.listen(
+  process.env['PORT'] || 10001,
+  process.env['HOST'] || process.env['IP_ADDRESS'] || "127.0.0.1",
+  function() {
+    var addy = exampleServer.address();
+    console.log("running on http://" + addy.address + ":" + addy.port);
+  });
-- 
GitLab