commit 142880ca809ca0a199feefe4b0f57e83c7424af4 Author: Nolan Darilek Date: Tue Oct 11 03:58:23 2016 -0500 Initial commit. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5948403 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +*.spk diff --git a/.sandstorm/.gitattributes b/.sandstorm/.gitattributes new file mode 100644 index 0000000..5a533b9 --- /dev/null +++ b/.sandstorm/.gitattributes @@ -0,0 +1,5 @@ + + +# vagrant-spk creates shell scripts, which must end in \n, even on a \r\n system. +*.sh text eol=lf + diff --git a/.sandstorm/.gitignore b/.sandstorm/.gitignore new file mode 100644 index 0000000..d70e1e3 --- /dev/null +++ b/.sandstorm/.gitignore @@ -0,0 +1,5 @@ + + +# This file stores a list of sub-paths of .sandstorm/ that should be ignored by git. +.vagrant + diff --git a/.sandstorm/Vagrantfile b/.sandstorm/Vagrantfile new file mode 100644 index 0000000..20c01b6 --- /dev/null +++ b/.sandstorm/Vagrantfile @@ -0,0 +1,103 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# Guess at a reasonable name for the VM based on the folder vagrant-spk is +# run from. The timestamp is there to avoid conflicts if you have multiple +# folders with the same name. +VM_NAME = File.basename(File.dirname(File.dirname(__FILE__))) + "_sandstorm_#{Time.now.utc.to_i}" + +# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! +VAGRANTFILE_API_VERSION = "2" + +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| + # Base on the Sandstorm snapshots of the official Debian 8 (jessie) box. + config.vm.box = "sandstorm/debian-jessie64" + + if Vagrant.has_plugin?("vagrant-vbguest") then + # vagrant-vbguest is a Vagrant plugin that upgrades + # the version of VirtualBox Guest Additions within each + # guest. If you have the vagrant-vbguest plugin, then it + # needs to know how to compile kernel modules, etc., and so + # we give it this hint about operating system type. + config.vm.guest = "debian" + end + + # We forward port 6080, the Sandstorm web port, so that developers can + # visit their sandstorm app from their browser as local.sandstorm.io:6080 + # (aka 127.0.0.1:6080). + config.vm.network :forwarded_port, guest: 6080, host: 6080 + + # Use a shell script to "provision" the box. This installs Sandstorm using + # the bundled installer. + config.vm.provision "shell", inline: "sudo bash /opt/app/.sandstorm/global-setup.sh", keep_color: true + # Then, do stack-specific and app-specific setup. + config.vm.provision "shell", inline: "sudo bash /opt/app/.sandstorm/setup.sh", keep_color: true + + # Shared folders are configured per-provider since vboxsf can't handle >4096 open files, + # NFS requires privilege escalation every time you bring a VM up, + # and 9p is only available on libvirt. + + # Calculate the number of CPUs and the amount of RAM the system has, + # in a platform-dependent way; further logic below. + cpus = nil + total_kB_ram = nil + + host = RbConfig::CONFIG['host_os'] + if host =~ /darwin/ + cpus = `sysctl -n hw.ncpu`.to_i + total_kB_ram = `sysctl -n hw.memsize`.to_i / 1024 + elsif host =~ /linux/ + cpus = `nproc`.to_i + total_kB_ram = `grep MemTotal /proc/meminfo | awk '{print $2}'`.to_i + elsif host =~ /mingw/ + # powershell may not be available on Windows XP and Vista, so wrap this in a rescue block + begin + cpus = `powershell -Command "(Get-WmiObject Win32_Processor -Property NumberOfLogicalProcessors | Select-Object -Property NumberOfLogicalProcessors | Measure-Object NumberOfLogicalProcessors -Sum).Sum"`.to_i + total_kB_ram = `powershell -Command "Get-CimInstance -class cim_physicalmemory | % $_.Capacity}"`.to_i / 1024 + rescue + end + end + # Use the same number of CPUs within Vagrant as the system, with 1 + # as a default. + # + # Use at least 512MB of RAM, and if the system has more than 2GB of + # RAM, use 1/4 of the system RAM. This seems a reasonable compromise + # between having the Vagrant guest operating system not run out of + # RAM entirely (which it basically would if we went much lower than + # 512MB) and also allowing it to use up a healthily large amount of + # RAM so it can run faster on systems that can afford it. + if cpus.nil? or cpus.zero? + cpus = 1 + end + if total_kB_ram.nil? or total_kB_ram < 2048000 + assign_ram_mb = 512 + else + assign_ram_mb = (total_kB_ram / 1024 / 4) + end + # Actually apply these CPU/memory values to the providers. + config.vm.provider :virtualbox do |vb, override| + vb.cpus = cpus + vb.memory = assign_ram_mb + vb.name = VM_NAME + vb.customize ["modifyvm", :id, "--nictype1", "Am79C973"] + + # /opt/app and /host-dot-sandstorm are used by vagrant-spk + override.vm.synced_folder "..", "/opt/app" + override.vm.synced_folder ENV["HOME"] + "/.sandstorm", "/host-dot-sandstorm" + # /vagrant is not used by vagrant-spk; we need this line so it gets disabled; if we removed the + # line, vagrant would automatically insert a synced folder in /vagrant, which is not what we want. + override.vm.synced_folder "..", "/vagrant", disabled: true + end + config.vm.provider :libvirt do |libvirt, override| + libvirt.cpus = cpus + libvirt.memory = assign_ram_mb + libvirt.default_prefix = VM_NAME + + # /opt/app and /host-dot-sandstorm are used by vagrant-spk + override.vm.synced_folder "..", "/opt/app", type: "9p", accessmode: "passthrough" + override.vm.synced_folder ENV["HOME"] + "/.sandstorm", "/host-dot-sandstorm", type: "9p", accessmode: "passthrough" + # /vagrant is not used by vagrant-spk; we need this line so it gets disabled; if we removed the + # line, vagrant would automatically insert a synced folder in /vagrant, which is not what we want. + override.vm.synced_folder "..", "/vagrant", type: "9p", accessmode: "passthrough", disabled: true + end +end diff --git a/.sandstorm/build.sh b/.sandstorm/build.sh new file mode 100755 index 0000000..2f45744 --- /dev/null +++ b/.sandstorm/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -euo pipefail + +cd /opt/app +npm install diff --git a/.sandstorm/global-setup.sh b/.sandstorm/global-setup.sh new file mode 100755 index 0000000..219c770 --- /dev/null +++ b/.sandstorm/global-setup.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -euo pipefail + +# Set options for curl. Since we only want to show errors from these curl commands, we also use +# 'cat' to buffer the output; for more information: +# https://github.com/sandstorm-io/vagrant-spk/issues/158 + +CURL_OPTS="--silent --show-error" +echo localhost > /etc/hostname +hostname localhost + +# The following line copies stderr through stderr to cat without accidentally leaving it in the +# output file. Be careful when changing. See: https://github.com/sandstorm-io/vagrant-spk/pull/159 +curl $CURL_OPTS https://install.sandstorm.io/ 2>&1 > /host-dot-sandstorm/caches/install.sh | cat + +SANDSTORM_CURRENT_VERSION=$(curl $CURL_OPTS -f "https://install.sandstorm.io/dev?from=0&type=install") +SANDSTORM_PACKAGE="sandstorm-$SANDSTORM_CURRENT_VERSION.tar.xz" +if [[ ! -f /host-dot-sandstorm/caches/$SANDSTORM_PACKAGE ]] ; then + echo -n "Downloading Sandstorm version ${SANDSTORM_CURRENT_VERSION}..." + curl $CURL_OPTS --output "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE.partial" "https://dl.sandstorm.io/$SANDSTORM_PACKAGE" 2>&1 | cat + mv "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE.partial" "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE" + echo "...done." +fi +if [ ! -e /opt/sandstorm/latest/sandstorm ] ; then + echo -n "Installing Sandstorm version ${SANDSTORM_CURRENT_VERSION}..." + bash /host-dot-sandstorm/caches/install.sh -d -e "/host-dot-sandstorm/caches/$SANDSTORM_PACKAGE" >/dev/null + echo "...done." +fi +modprobe ip_tables +# Make the vagrant user part of the sandstorm group so that commands like +# `spk dev` work. +usermod -a -G 'sandstorm' 'vagrant' +# Bind to all addresses, so the vagrant port-forward works. +sudo sed --in-place='' \ + --expression='s/^BIND_IP=.*/BIND_IP=0.0.0.0/' \ + /opt/sandstorm/sandstorm.conf +sudo service sandstorm restart +# Enable apt-cacher-ng proxy to make things faster if one appears to be running on the gateway IP +GATEWAY_IP=$(ip route | grep ^default | cut -d ' ' -f 3) +if nc -z "$GATEWAY_IP" 3142 ; then + echo "Acquire::http::Proxy \"http://$GATEWAY_IP:3142\";" > /etc/apt/apt.conf.d/80httpproxy +fi +# Configure apt to retry fetching things that fail to download. +echo "APT::Acquire::Retries \"10\";" > /etc/apt/apt.conf.d/80sandstorm-retry diff --git a/.sandstorm/launcher.sh b/.sandstorm/launcher.sh new file mode 100755 index 0000000..e52ea81 --- /dev/null +++ b/.sandstorm/launcher.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -euo pipefail + +if [ ! -e /var/git ]; then + cd /var + hugo new site git + cd git + git init + git add * + echo public >.gitignore + git add .gitignore + git commit -m "Initial commit." + git config receive.denyCurrentBranch ignore +fi + +if [ ! -e /var/www ]; then + /opt/app/post-receive +fi + +cd /opt/app +cp post-receive /var/git/.git/hooks +NODE_ENV=production HOME=/tmp npm start diff --git a/.sandstorm/pgp-keyring b/.sandstorm/pgp-keyring new file mode 100644 index 0000000..ee890df Binary files /dev/null and b/.sandstorm/pgp-keyring differ diff --git a/.sandstorm/pgp-signature b/.sandstorm/pgp-signature new file mode 100644 index 0000000..e291358 --- /dev/null +++ b/.sandstorm/pgp-signature @@ -0,0 +1,6 @@ +,L+pG}YJo=],ſhm.s{)=NI?1:qhL6GUK>hݿvIObX#y5 \ No newline at end of file diff --git a/.sandstorm/sandstorm-files.list b/.sandstorm/sandstorm-files.list new file mode 100644 index 0000000..9324e37 --- /dev/null +++ b/.sandstorm/sandstorm-files.list @@ -0,0 +1,855 @@ +# *** WARNING: GENERATED FILE *** +# This file is automatically updated and rewritten in sorted order every time +# the app runs in dev mode. You may manually add or remove files, but don't +# expect comments or ordering to be retained. +bin/bash +bin/cp +bin/dash +bin/ls +bin/mkdir +bin/rm +bin/sh +etc/alternatives/node +etc/ld.so.cache +etc/localtime +etc/mailname +etc/mime.types +etc/passwd +etc/ssl/openssl.cnf +lib/x86_64-linux-gnu/ld-2.19.so +lib/x86_64-linux-gnu/libacl.so.1 +lib/x86_64-linux-gnu/libacl.so.1.1.0 +lib/x86_64-linux-gnu/libattr.so.1 +lib/x86_64-linux-gnu/libattr.so.1.1.0 +lib/x86_64-linux-gnu/libc-2.19.so +lib/x86_64-linux-gnu/libc.so.6 +lib/x86_64-linux-gnu/libdl-2.19.so +lib/x86_64-linux-gnu/libdl.so.2 +lib/x86_64-linux-gnu/libgcc_s.so.1 +lib/x86_64-linux-gnu/libm-2.19.so +lib/x86_64-linux-gnu/libm.so.6 +lib/x86_64-linux-gnu/libncurses.so.5 +lib/x86_64-linux-gnu/libncurses.so.5.9 +lib/x86_64-linux-gnu/libnsl-2.19.so +lib/x86_64-linux-gnu/libnsl.so.1 +lib/x86_64-linux-gnu/libnss_compat-2.19.so +lib/x86_64-linux-gnu/libnss_compat.so.2 +lib/x86_64-linux-gnu/libnss_files-2.19.so +lib/x86_64-linux-gnu/libnss_files.so.2 +lib/x86_64-linux-gnu/libnss_nis-2.19.so +lib/x86_64-linux-gnu/libnss_nis.so.2 +lib/x86_64-linux-gnu/libpcre.so.3 +lib/x86_64-linux-gnu/libpcre.so.3.13.1 +lib/x86_64-linux-gnu/libpthread-2.19.so +lib/x86_64-linux-gnu/libpthread.so.0 +lib/x86_64-linux-gnu/libresolv-2.19.so +lib/x86_64-linux-gnu/libresolv.so.2 +lib/x86_64-linux-gnu/librt-2.19.so +lib/x86_64-linux-gnu/librt.so.1 +lib/x86_64-linux-gnu/libselinux.so.1 +lib/x86_64-linux-gnu/libtinfo.so.5 +lib/x86_64-linux-gnu/libtinfo.so.5.9 +lib/x86_64-linux-gnu/libz.so.1 +lib/x86_64-linux-gnu/libz.so.1.2.8 +lib64/ld-linux-x86-64.so.2 +opt/app +opt/app/.git/HEAD +opt/app/.sandstorm/launcher.sh +opt/app/app.js +opt/app/node_modules/accepts/index.js +opt/app/node_modules/accepts/package.json +opt/app/node_modules/acorn-globals/index.js +opt/app/node_modules/acorn-globals/package.json +opt/app/node_modules/acorn/dist/acorn.js +opt/app/node_modules/acorn/dist/walk.js +opt/app/node_modules/acorn/package.json +opt/app/node_modules/amdefine/amdefine.js +opt/app/node_modules/amdefine/package.json +opt/app/node_modules/array-flatten/array-flatten.js +opt/app/node_modules/array-flatten/package.json +opt/app/node_modules/asap/asap.js +opt/app/node_modules/asap/package.json +opt/app/node_modules/basic-auth/index.js +opt/app/node_modules/basic-auth/package.json +opt/app/node_modules/character-parser/index.js +opt/app/node_modules/character-parser/package.json +opt/app/node_modules/clean-css/index.js +opt/app/node_modules/clean-css/lib/clean.js +opt/app/node_modules/clean-css/lib/colors/hex-name-shortener.js +opt/app/node_modules/clean-css/lib/colors/hsl.js +opt/app/node_modules/clean-css/lib/colors/rgb.js +opt/app/node_modules/clean-css/lib/imports/inliner.js +opt/app/node_modules/clean-css/lib/properties/break-up.js +opt/app/node_modules/clean-css/lib/properties/can-override.js +opt/app/node_modules/clean-css/lib/properties/clone.js +opt/app/node_modules/clean-css/lib/properties/compactable.js +opt/app/node_modules/clean-css/lib/properties/every-combination.js +opt/app/node_modules/clean-css/lib/properties/has-inherit.js +opt/app/node_modules/clean-css/lib/properties/invalid-property-error.js +opt/app/node_modules/clean-css/lib/properties/optimizer.js +opt/app/node_modules/clean-css/lib/properties/override-compactor.js +opt/app/node_modules/clean-css/lib/properties/populate-components.js +opt/app/node_modules/clean-css/lib/properties/remove-unused.js +opt/app/node_modules/clean-css/lib/properties/restore-from-optimizing.js +opt/app/node_modules/clean-css/lib/properties/restore.js +opt/app/node_modules/clean-css/lib/properties/shorthand-compactor.js +opt/app/node_modules/clean-css/lib/properties/validator.js +opt/app/node_modules/clean-css/lib/properties/vendor-prefixes.js +opt/app/node_modules/clean-css/lib/properties/wrap-for-optimizing.js +opt/app/node_modules/clean-css/lib/selectors/advanced.js +opt/app/node_modules/clean-css/lib/selectors/clean-up.js +opt/app/node_modules/clean-css/lib/selectors/extractor.js +opt/app/node_modules/clean-css/lib/selectors/is-special.js +opt/app/node_modules/clean-css/lib/selectors/merge-adjacent.js +opt/app/node_modules/clean-css/lib/selectors/merge-media-queries.js +opt/app/node_modules/clean-css/lib/selectors/merge-non-adjacent-by-body.js +opt/app/node_modules/clean-css/lib/selectors/merge-non-adjacent-by-selector.js +opt/app/node_modules/clean-css/lib/selectors/reduce-non-adjacent.js +opt/app/node_modules/clean-css/lib/selectors/remove-duplicate-media-queries.js +opt/app/node_modules/clean-css/lib/selectors/remove-duplicates.js +opt/app/node_modules/clean-css/lib/selectors/reorderable.js +opt/app/node_modules/clean-css/lib/selectors/restructure.js +opt/app/node_modules/clean-css/lib/selectors/simple.js +opt/app/node_modules/clean-css/lib/source-maps/track.js +opt/app/node_modules/clean-css/lib/stringifier/helpers.js +opt/app/node_modules/clean-css/lib/stringifier/one-time.js +opt/app/node_modules/clean-css/lib/stringifier/simple.js +opt/app/node_modules/clean-css/lib/stringifier/source-maps.js +opt/app/node_modules/clean-css/lib/text/comments-processor.js +opt/app/node_modules/clean-css/lib/text/escape-store.js +opt/app/node_modules/clean-css/lib/text/expressions-processor.js +opt/app/node_modules/clean-css/lib/text/free-text-processor.js +opt/app/node_modules/clean-css/lib/text/urls-processor.js +opt/app/node_modules/clean-css/lib/tokenizer/extract-properties.js +opt/app/node_modules/clean-css/lib/tokenizer/extract-selectors.js +opt/app/node_modules/clean-css/lib/tokenizer/tokenize.js +opt/app/node_modules/clean-css/lib/urls/rebase.js +opt/app/node_modules/clean-css/lib/urls/reduce.js +opt/app/node_modules/clean-css/lib/urls/rewrite.js +opt/app/node_modules/clean-css/lib/utils/clone-array.js +opt/app/node_modules/clean-css/lib/utils/compatibility.js +opt/app/node_modules/clean-css/lib/utils/input-source-map-tracker.js +opt/app/node_modules/clean-css/lib/utils/object.js +opt/app/node_modules/clean-css/lib/utils/quote-scanner.js +opt/app/node_modules/clean-css/lib/utils/source-reader.js +opt/app/node_modules/clean-css/lib/utils/source-tracker.js +opt/app/node_modules/clean-css/lib/utils/split.js +opt/app/node_modules/clean-css/package.json +opt/app/node_modules/constantinople/index.js +opt/app/node_modules/constantinople/package.json +opt/app/node_modules/content-disposition/index.js +opt/app/node_modules/content-disposition/package.json +opt/app/node_modules/content-type/index.js +opt/app/node_modules/content-type/package.json +opt/app/node_modules/cookie-signature/index.js +opt/app/node_modules/cookie-signature/package.json +opt/app/node_modules/cookie/index.js +opt/app/node_modules/cookie/package.json +opt/app/node_modules/css-parse/index.js +opt/app/node_modules/css-parse/package.json +opt/app/node_modules/css-stringify/index.js +opt/app/node_modules/css-stringify/package.json +opt/app/node_modules/css/index.js +opt/app/node_modules/css/package.json +opt/app/node_modules/debug/debug.js +opt/app/node_modules/debug/node.js +opt/app/node_modules/debug/package.json +opt/app/node_modules/depd/index.js +opt/app/node_modules/depd/lib/compat/index.js +opt/app/node_modules/depd/package.json +opt/app/node_modules/destroy/index.js +opt/app/node_modules/destroy/package.json +opt/app/node_modules/ee-first/index.js +opt/app/node_modules/ee-first/package.json +opt/app/node_modules/escape-html/index.js +opt/app/node_modules/escape-html/package.json +opt/app/node_modules/etag/index.js +opt/app/node_modules/etag/package.json +opt/app/node_modules/express/index.js +opt/app/node_modules/express/lib/application.js +opt/app/node_modules/express/lib/express.js +opt/app/node_modules/express/lib/middleware/init.js +opt/app/node_modules/express/lib/middleware/query.js +opt/app/node_modules/express/lib/request.js +opt/app/node_modules/express/lib/response.js +opt/app/node_modules/express/lib/router/index.js +opt/app/node_modules/express/lib/router/layer.js +opt/app/node_modules/express/lib/router/route.js +opt/app/node_modules/express/lib/utils.js +opt/app/node_modules/express/lib/view.js +opt/app/node_modules/express/package.json +opt/app/node_modules/finalhandler/index.js +opt/app/node_modules/finalhandler/package.json +opt/app/node_modules/forwarded/index.js +opt/app/node_modules/forwarded/package.json +opt/app/node_modules/fresh/index.js +opt/app/node_modules/fresh/package.json +opt/app/node_modules/git-http-backend/index.js +opt/app/node_modules/git-http-backend/lib/service.js +opt/app/node_modules/git-http-backend/package.json +opt/app/node_modules/git-side-band-message/index.js +opt/app/node_modules/git-side-band-message/package.json +opt/app/node_modules/http-errors/index.js +opt/app/node_modules/http-errors/package.json +opt/app/node_modules/inherits/inherits.js +opt/app/node_modules/inherits/package.json +opt/app/node_modules/ipaddr.js/lib/ipaddr.js +opt/app/node_modules/ipaddr.js/package.json +opt/app/node_modules/is-promise/index.js +opt/app/node_modules/is-promise/package.json +opt/app/node_modules/jade/lib/compiler.js +opt/app/node_modules/jade/lib/doctypes.js +opt/app/node_modules/jade/lib/filters.js +opt/app/node_modules/jade/lib/index.js +opt/app/node_modules/jade/lib/inline-tags.js +opt/app/node_modules/jade/lib/lexer.js +opt/app/node_modules/jade/lib/nodes/attrs.js +opt/app/node_modules/jade/lib/nodes/block-comment.js +opt/app/node_modules/jade/lib/nodes/block.js +opt/app/node_modules/jade/lib/nodes/case.js +opt/app/node_modules/jade/lib/nodes/code.js +opt/app/node_modules/jade/lib/nodes/comment.js +opt/app/node_modules/jade/lib/nodes/doctype.js +opt/app/node_modules/jade/lib/nodes/each.js +opt/app/node_modules/jade/lib/nodes/filter.js +opt/app/node_modules/jade/lib/nodes/index.js +opt/app/node_modules/jade/lib/nodes/literal.js +opt/app/node_modules/jade/lib/nodes/mixin-block.js +opt/app/node_modules/jade/lib/nodes/mixin.js +opt/app/node_modules/jade/lib/nodes/node.js +opt/app/node_modules/jade/lib/nodes/tag.js +opt/app/node_modules/jade/lib/nodes/text.js +opt/app/node_modules/jade/lib/parser.js +opt/app/node_modules/jade/lib/runtime.js +opt/app/node_modules/jade/lib/utils.js +opt/app/node_modules/jade/package.json +opt/app/node_modules/jstransformer/index.js +opt/app/node_modules/jstransformer/package.json +opt/app/node_modules/media-typer/index.js +opt/app/node_modules/media-typer/package.json +opt/app/node_modules/merge-descriptors/index.js +opt/app/node_modules/merge-descriptors/package.json +opt/app/node_modules/methods/index.js +opt/app/node_modules/methods/package.json +opt/app/node_modules/mime-db/db.json +opt/app/node_modules/mime-db/index.js +opt/app/node_modules/mime-db/package.json +opt/app/node_modules/mime-types/index.js +opt/app/node_modules/mime-types/package.json +opt/app/node_modules/mime/mime.js +opt/app/node_modules/mime/package.json +opt/app/node_modules/mime/types.json +opt/app/node_modules/morgan/index.js +opt/app/node_modules/morgan/package.json +opt/app/node_modules/ms/index.js +opt/app/node_modules/ms/package.json +opt/app/node_modules/negotiator/index.js +opt/app/node_modules/negotiator/lib/charset.js +opt/app/node_modules/negotiator/lib/encoding.js +opt/app/node_modules/negotiator/lib/language.js +opt/app/node_modules/negotiator/lib/mediaType.js +opt/app/node_modules/negotiator/package.json +opt/app/node_modules/on-finished/index.js +opt/app/node_modules/on-finished/package.json +opt/app/node_modules/on-headers/index.js +opt/app/node_modules/on-headers/package.json +opt/app/node_modules/parseurl/index.js +opt/app/node_modules/parseurl/package.json +opt/app/node_modules/path-to-regexp/index.js +opt/app/node_modules/path-to-regexp/package.json +opt/app/node_modules/promise/index.js +opt/app/node_modules/promise/lib/core.js +opt/app/node_modules/promise/lib/done.js +opt/app/node_modules/promise/lib/es6-extensions.js +opt/app/node_modules/promise/lib/node-extensions.js +opt/app/node_modules/promise/package.json +opt/app/node_modules/proxy-addr/index.js +opt/app/node_modules/proxy-addr/package.json +opt/app/node_modules/qs/lib/index.js +opt/app/node_modules/qs/lib/parse.js +opt/app/node_modules/qs/lib/stringify.js +opt/app/node_modules/qs/lib/utils.js +opt/app/node_modules/qs/package.json +opt/app/node_modules/range-parser/index.js +opt/app/node_modules/range-parser/package.json +opt/app/node_modules/send/index.js +opt/app/node_modules/send/package.json +opt/app/node_modules/serve-static/index.js +opt/app/node_modules/serve-static/node_modules/send/index.js +opt/app/node_modules/serve-static/node_modules/send/package.json +opt/app/node_modules/serve-static/package.json +opt/app/node_modules/source-map/lib/source-map.js +opt/app/node_modules/source-map/lib/source-map/array-set.js +opt/app/node_modules/source-map/lib/source-map/base64-vlq.js +opt/app/node_modules/source-map/lib/source-map/base64.js +opt/app/node_modules/source-map/lib/source-map/binary-search.js +opt/app/node_modules/source-map/lib/source-map/mapping-list.js +opt/app/node_modules/source-map/lib/source-map/quick-sort.js +opt/app/node_modules/source-map/lib/source-map/source-map-consumer.js +opt/app/node_modules/source-map/lib/source-map/source-map-generator.js +opt/app/node_modules/source-map/lib/source-map/source-node.js +opt/app/node_modules/source-map/lib/source-map/util.js +opt/app/node_modules/source-map/package.json +opt/app/node_modules/statuses/codes.json +opt/app/node_modules/statuses/index.js +opt/app/node_modules/statuses/package.json +opt/app/node_modules/transformers/lib/shared.js +opt/app/node_modules/transformers/lib/transformers.js +opt/app/node_modules/transformers/node_modules/is-promise/index.js +opt/app/node_modules/transformers/node_modules/is-promise/package.json +opt/app/node_modules/transformers/node_modules/promise/index.js +opt/app/node_modules/transformers/node_modules/promise/package.json +opt/app/node_modules/transformers/node_modules/source-map/lib/source-map.js +opt/app/node_modules/transformers/node_modules/source-map/lib/source-map/array-set.js +opt/app/node_modules/transformers/node_modules/source-map/lib/source-map/base64-vlq.js +opt/app/node_modules/transformers/node_modules/source-map/lib/source-map/base64.js +opt/app/node_modules/transformers/node_modules/source-map/lib/source-map/binary-search.js +opt/app/node_modules/transformers/node_modules/source-map/lib/source-map/mapping-list.js +opt/app/node_modules/transformers/node_modules/source-map/lib/source-map/source-map-consumer.js +opt/app/node_modules/transformers/node_modules/source-map/lib/source-map/source-map-generator.js +opt/app/node_modules/transformers/node_modules/source-map/lib/source-map/source-node.js +opt/app/node_modules/transformers/node_modules/source-map/lib/source-map/util.js +opt/app/node_modules/transformers/node_modules/source-map/package.json +opt/app/node_modules/transformers/node_modules/uglify-js/lib/ast.js +opt/app/node_modules/transformers/node_modules/uglify-js/lib/compress.js +opt/app/node_modules/transformers/node_modules/uglify-js/lib/mozilla-ast.js +opt/app/node_modules/transformers/node_modules/uglify-js/lib/output.js +opt/app/node_modules/transformers/node_modules/uglify-js/lib/parse.js +opt/app/node_modules/transformers/node_modules/uglify-js/lib/scope.js +opt/app/node_modules/transformers/node_modules/uglify-js/lib/sourcemap.js +opt/app/node_modules/transformers/node_modules/uglify-js/lib/transform.js +opt/app/node_modules/transformers/node_modules/uglify-js/lib/utils.js +opt/app/node_modules/transformers/node_modules/uglify-js/package.json +opt/app/node_modules/transformers/node_modules/uglify-js/tools/node.js +opt/app/node_modules/transformers/package.json +opt/app/node_modules/type-is/index.js +opt/app/node_modules/type-is/package.json +opt/app/node_modules/uglify-js/lib/ast.js +opt/app/node_modules/uglify-js/lib/compress.js +opt/app/node_modules/uglify-js/lib/mozilla-ast.js +opt/app/node_modules/uglify-js/lib/output.js +opt/app/node_modules/uglify-js/lib/parse.js +opt/app/node_modules/uglify-js/lib/propmangle.js +opt/app/node_modules/uglify-js/lib/scope.js +opt/app/node_modules/uglify-js/lib/sourcemap.js +opt/app/node_modules/uglify-js/lib/transform.js +opt/app/node_modules/uglify-js/lib/utils.js +opt/app/node_modules/uglify-js/node_modules/source-map/lib/array-set.js +opt/app/node_modules/uglify-js/node_modules/source-map/lib/base64-vlq.js +opt/app/node_modules/uglify-js/node_modules/source-map/lib/base64.js +opt/app/node_modules/uglify-js/node_modules/source-map/lib/binary-search.js +opt/app/node_modules/uglify-js/node_modules/source-map/lib/mapping-list.js +opt/app/node_modules/uglify-js/node_modules/source-map/lib/quick-sort.js +opt/app/node_modules/uglify-js/node_modules/source-map/lib/source-map-consumer.js +opt/app/node_modules/uglify-js/node_modules/source-map/lib/source-map-generator.js +opt/app/node_modules/uglify-js/node_modules/source-map/lib/source-node.js +opt/app/node_modules/uglify-js/node_modules/source-map/lib/util.js +opt/app/node_modules/uglify-js/node_modules/source-map/package.json +opt/app/node_modules/uglify-js/node_modules/source-map/source-map.js +opt/app/node_modules/uglify-js/package.json +opt/app/node_modules/uglify-js/tools/exports.js +opt/app/node_modules/uglify-js/tools/node.js +opt/app/node_modules/unpipe/index.js +opt/app/node_modules/unpipe/package.json +opt/app/node_modules/utils-merge/index.js +opt/app/node_modules/utils-merge/package.json +opt/app/node_modules/vary/index.js +opt/app/node_modules/vary/package.json +opt/app/node_modules/void-elements/index.js +opt/app/node_modules/void-elements/package.json +opt/app/node_modules/with/index.js +opt/app/node_modules/with/node_modules/acorn/dist/acorn.js +opt/app/node_modules/with/node_modules/acorn/dist/walk.js +opt/app/node_modules/with/node_modules/acorn/package.json +opt/app/node_modules/with/package.json +opt/app/package.json +opt/app/post-receive +opt/app/public/stylesheets/style.css +opt/app/routes.js +opt/app/views/index.jade +opt/app/views/layout.jade +opt/app/views/publicId.jade +proc/cpuinfo +sandstorm-http-bridge +sandstorm-http-bridge-config +sandstorm-manifest +usr/bin/env +usr/bin/git +usr/bin/git-receive-pack +usr/bin/git-upload-pack +usr/bin/hugo +usr/bin/node +usr/bin/nodejs +usr/bin/npm +usr/lib/git-core/git +usr/lib/git-core/git-upload-pack +usr/lib/node_modules/npm/bin/npm-cli.js +usr/lib/node_modules/npm/lib/cache/caching-client.js +usr/lib/node_modules/npm/lib/cache/get-stat.js +usr/lib/node_modules/npm/lib/config/clear-credentials-by-uri.js +usr/lib/node_modules/npm/lib/config/cmd-list.js +usr/lib/node_modules/npm/lib/config/core.js +usr/lib/node_modules/npm/lib/config/defaults.js +usr/lib/node_modules/npm/lib/config/find-prefix.js +usr/lib/node_modules/npm/lib/config/get-credentials-by-uri.js +usr/lib/node_modules/npm/lib/config/load-cafile.js +usr/lib/node_modules/npm/lib/config/load-prefix.js +usr/lib/node_modules/npm/lib/config/load-uid.js +usr/lib/node_modules/npm/lib/config/nerf-dart.js +usr/lib/node_modules/npm/lib/config/set-credentials-by-uri.js +usr/lib/node_modules/npm/lib/config/set-user.js +usr/lib/node_modules/npm/lib/npm.js +usr/lib/node_modules/npm/lib/run-script.js +usr/lib/node_modules/npm/lib/start.js +usr/lib/node_modules/npm/lib/utils/completion/installed-shallow.js +usr/lib/node_modules/npm/lib/utils/correct-mkdir.js +usr/lib/node_modules/npm/lib/utils/error-handler.js +usr/lib/node_modules/npm/lib/utils/error-message.js +usr/lib/node_modules/npm/lib/utils/is-windows.js +usr/lib/node_modules/npm/lib/utils/lifecycle.js +usr/lib/node_modules/npm/lib/utils/no-progress-while-running.js +usr/lib/node_modules/npm/lib/utils/output.js +usr/lib/node_modules/npm/lib/utils/parse-json.js +usr/lib/node_modules/npm/lib/utils/spawn.js +usr/lib/node_modules/npm/lib/utils/umask.js +usr/lib/node_modules/npm/lib/utils/usage.js +usr/lib/node_modules/npm/node_modules/abbrev/abbrev.js +usr/lib/node_modules/npm/node_modules/abbrev/package.json +usr/lib/node_modules/npm/node_modules/ansi-regex/index.js +usr/lib/node_modules/npm/node_modules/ansi-regex/package.json +usr/lib/node_modules/npm/node_modules/aproba/index.js +usr/lib/node_modules/npm/node_modules/aproba/package.json +usr/lib/node_modules/npm/node_modules/asap/asap.js +usr/lib/node_modules/npm/node_modules/asap/package.json +usr/lib/node_modules/npm/node_modules/asap/raw.js +usr/lib/node_modules/npm/node_modules/chownr/chownr.js +usr/lib/node_modules/npm/node_modules/chownr/package.json +usr/lib/node_modules/npm/node_modules/config-chain/index.js +usr/lib/node_modules/npm/node_modules/config-chain/node_modules/proto-list/package.json +usr/lib/node_modules/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js +usr/lib/node_modules/npm/node_modules/config-chain/package.json +usr/lib/node_modules/npm/node_modules/dezalgo/dezalgo.js +usr/lib/node_modules/npm/node_modules/dezalgo/package.json +usr/lib/node_modules/npm/node_modules/fs-write-stream-atomic/index.js +usr/lib/node_modules/npm/node_modules/fs-write-stream-atomic/package.json +usr/lib/node_modules/npm/node_modules/glob/common.js +usr/lib/node_modules/npm/node_modules/glob/glob.js +usr/lib/node_modules/npm/node_modules/glob/node_modules/fs.realpath/index.js +usr/lib/node_modules/npm/node_modules/glob/node_modules/fs.realpath/old.js +usr/lib/node_modules/npm/node_modules/glob/node_modules/fs.realpath/package.json +usr/lib/node_modules/npm/node_modules/glob/node_modules/minimatch/minimatch.js +usr/lib/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +usr/lib/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +usr/lib/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +usr/lib/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +usr/lib/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +usr/lib/node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +usr/lib/node_modules/npm/node_modules/glob/node_modules/minimatch/package.json +usr/lib/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/index.js +usr/lib/node_modules/npm/node_modules/glob/node_modules/path-is-absolute/package.json +usr/lib/node_modules/npm/node_modules/glob/package.json +usr/lib/node_modules/npm/node_modules/glob/sync.js +usr/lib/node_modules/npm/node_modules/graceful-fs/fs.js +usr/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js +usr/lib/node_modules/npm/node_modules/graceful-fs/legacy-streams.js +usr/lib/node_modules/npm/node_modules/graceful-fs/package.json +usr/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js +usr/lib/node_modules/npm/node_modules/has-unicode/index.js +usr/lib/node_modules/npm/node_modules/has-unicode/package.json +usr/lib/node_modules/npm/node_modules/hosted-git-info/git-host-info.js +usr/lib/node_modules/npm/node_modules/hosted-git-info/git-host.js +usr/lib/node_modules/npm/node_modules/hosted-git-info/index.js +usr/lib/node_modules/npm/node_modules/hosted-git-info/package.json +usr/lib/node_modules/npm/node_modules/iferr/index.js +usr/lib/node_modules/npm/node_modules/iferr/package.json +usr/lib/node_modules/npm/node_modules/imurmurhash/imurmurhash.js +usr/lib/node_modules/npm/node_modules/imurmurhash/package.json +usr/lib/node_modules/npm/node_modules/inflight/inflight.js +usr/lib/node_modules/npm/node_modules/inflight/package.json +usr/lib/node_modules/npm/node_modules/inherits/inherits.js +usr/lib/node_modules/npm/node_modules/inherits/package.json +usr/lib/node_modules/npm/node_modules/ini/ini.js +usr/lib/node_modules/npm/node_modules/ini/package.json +usr/lib/node_modules/npm/node_modules/mkdirp/index.js +usr/lib/node_modules/npm/node_modules/mkdirp/package.json +usr/lib/node_modules/npm/node_modules/nopt/lib/nopt.js +usr/lib/node_modules/npm/node_modules/nopt/package.json +usr/lib/node_modules/npm/node_modules/normalize-package-data/lib/extract_description.js +usr/lib/node_modules/npm/node_modules/normalize-package-data/lib/fixer.js +usr/lib/node_modules/npm/node_modules/normalize-package-data/lib/make_warning.js +usr/lib/node_modules/npm/node_modules/normalize-package-data/lib/normalize.js +usr/lib/node_modules/npm/node_modules/normalize-package-data/lib/typos.json +usr/lib/node_modules/npm/node_modules/normalize-package-data/lib/warning_messages.json +usr/lib/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js +usr/lib/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js +usr/lib/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json +usr/lib/node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json +usr/lib/node_modules/npm/node_modules/normalize-package-data/package.json +usr/lib/node_modules/npm/node_modules/npm-cache-filename/index.js +usr/lib/node_modules/npm/node_modules/npm-cache-filename/package.json +usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js +usr/lib/node_modules/npm/node_modules/npm-package-arg/package.json +usr/lib/node_modules/npm/node_modules/npm-registry-client/index.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/access.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/adduser.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/attempt.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/authify.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/deprecate.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/add.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/fetch.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/rm.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/set.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/dist-tags/update.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/fetch.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/initialize.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/logout.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/ping.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/publish.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/star.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/stars.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/tag.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/team.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/unpublish.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/lib/whoami.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/index.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray/package.json +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/index.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args/package.json +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/node.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate/package.json +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/package.json +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/readable.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/index.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js +usr/lib/node_modules/npm/node_modules/npm-registry-client/node_modules/retry/package.json +usr/lib/node_modules/npm/node_modules/npm-registry-client/package.json +usr/lib/node_modules/npm/node_modules/npmlog/log.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/console-control-strings/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/console-control-strings/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/base-theme.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/error.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/has-color.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/signals.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/node_modules/number-is-nan/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/node_modules/number-is-nan/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/align.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/package.json +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/plumbing.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/process.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/render-template.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/set-immediate.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/set-interval.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/spin.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/template-item.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/theme-set.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/themes.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/wide-truncate.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/set-blocking/index.js +usr/lib/node_modules/npm/node_modules/npmlog/node_modules/set-blocking/package.json +usr/lib/node_modules/npm/node_modules/npmlog/package.json +usr/lib/node_modules/npm/node_modules/once/once.js +usr/lib/node_modules/npm/node_modules/once/package.json +usr/lib/node_modules/npm/node_modules/osenv/node_modules/os-homedir/index.js +usr/lib/node_modules/npm/node_modules/osenv/node_modules/os-homedir/package.json +usr/lib/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/index.js +usr/lib/node_modules/npm/node_modules/osenv/node_modules/os-tmpdir/package.json +usr/lib/node_modules/npm/node_modules/osenv/osenv.js +usr/lib/node_modules/npm/node_modules/osenv/package.json +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/common.js +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/glob.js +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/minimatch.js +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/package.json +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/index.js +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute/package.json +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/package.json +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/glob/sync.js +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/index.js +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/index.js +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju/package.json +usr/lib/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/package.json +usr/lib/node_modules/npm/node_modules/read-package-json/package.json +usr/lib/node_modules/npm/node_modules/read-package-json/read-json.js +usr/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_duplex.js +usr/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_passthrough.js +usr/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_readable.js +usr/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_transform.js +usr/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js +usr/lib/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/index.js +usr/lib/node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims/package.json +usr/lib/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +usr/lib/node_modules/npm/node_modules/readable-stream/node_modules/core-util-is/package.json +usr/lib/node_modules/npm/node_modules/readable-stream/node_modules/isarray/index.js +usr/lib/node_modules/npm/node_modules/readable-stream/node_modules/isarray/package.json +usr/lib/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/index.js +usr/lib/node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args/package.json +usr/lib/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/node.js +usr/lib/node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json +usr/lib/node_modules/npm/node_modules/readable-stream/package.json +usr/lib/node_modules/npm/node_modules/readable-stream/readable.js +usr/lib/node_modules/npm/node_modules/request/index.js +usr/lib/node_modules/npm/node_modules/request/lib/auth.js +usr/lib/node_modules/npm/node_modules/request/lib/cookies.js +usr/lib/node_modules/npm/node_modules/request/lib/getProxyFromURI.js +usr/lib/node_modules/npm/node_modules/request/lib/har.js +usr/lib/node_modules/npm/node_modules/request/lib/helpers.js +usr/lib/node_modules/npm/node_modules/request/lib/multipart.js +usr/lib/node_modules/npm/node_modules/request/lib/oauth.js +usr/lib/node_modules/npm/node_modules/request/lib/querystring.js +usr/lib/node_modules/npm/node_modules/request/lib/redirect.js +usr/lib/node_modules/npm/node_modules/request/lib/tunnel.js +usr/lib/node_modules/npm/node_modules/request/node_modules/aws-sign2/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/aws-sign2/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/bl.js +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/duplex.js +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_duplex.js +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_readable.js +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/lib/_stream_writable.js +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/node.js +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/bl/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/caseless/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/caseless/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/combined-stream/lib/combined_stream.js +usr/lib/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js +usr/lib/node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/combined-stream/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/extend/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/extend/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/forever-agent/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/forever-agent/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/form-data/lib/form_data.js +usr/lib/node_modules/npm/node_modules/request/node_modules/form-data/lib/populate.js +usr/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/lib/async.js +usr/lib/node_modules/npm/node_modules/request/node_modules/form-data/node_modules/async/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/form-data/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/error.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/runner.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/cache.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/cacheEntry.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/content.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/cookie.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/creator.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/entry.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/har.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/log.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/page.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/pageTimings.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/postData.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/record.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/request.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/response.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/lib/schemas/timings.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/formats.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/is-property.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/jsonpointer.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/immutable.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/pinkie-promise/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/pinkie-promise/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/har-validator/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/client.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/crypto.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/server.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/lib/utils.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/hawk/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/parser.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/signer.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/utils.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/lib/verify.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/lib/jsprim.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/lib/extsprintf.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/validate.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/lib/verror.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/algs.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/dhe.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ed-compat.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/errors.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/fingerprint.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/auto.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pem.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs1.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs8.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/rfc4253.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh-private.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/key.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/private-key.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ssh-buffer.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/utils.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/errors.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/reader.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/types.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/writer.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/http-signature/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/is-typedarray/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/is-typedarray/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/isstream/isstream.js +usr/lib/node_modules/npm/node_modules/request/node_modules/isstream/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js +usr/lib/node_modules/npm/node_modules/request/node_modules/mime-types/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json +usr/lib/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/mime-types/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/node-uuid/uuid.js +usr/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/oauth-sign/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/qs/lib/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/qs/lib/parse.js +usr/lib/node_modules/npm/node_modules/request/node_modules/qs/lib/stringify.js +usr/lib/node_modules/npm/node_modules/request/node_modules/qs/lib/utils.js +usr/lib/node_modules/npm/node_modules/request/node_modules/qs/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/stringstream/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/stringstream/stringstream.js +usr/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js +usr/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js +usr/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js +usr/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js +usr/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js +usr/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/lib/store.js +usr/lib/node_modules/npm/node_modules/request/node_modules/tough-cookie/package.json +usr/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/index.js +usr/lib/node_modules/npm/node_modules/request/node_modules/tunnel-agent/package.json +usr/lib/node_modules/npm/node_modules/request/package.json +usr/lib/node_modules/npm/node_modules/request/request.js +usr/lib/node_modules/npm/node_modules/rimraf/package.json +usr/lib/node_modules/npm/node_modules/rimraf/rimraf.js +usr/lib/node_modules/npm/node_modules/semver/package.json +usr/lib/node_modules/npm/node_modules/semver/semver.js +usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js +usr/lib/node_modules/npm/node_modules/slide/lib/bind-actor.js +usr/lib/node_modules/npm/node_modules/slide/lib/chain.js +usr/lib/node_modules/npm/node_modules/slide/lib/slide.js +usr/lib/node_modules/npm/node_modules/slide/package.json +usr/lib/node_modules/npm/node_modules/strip-ansi/index.js +usr/lib/node_modules/npm/node_modules/strip-ansi/package.json +usr/lib/node_modules/npm/node_modules/uid-number/package.json +usr/lib/node_modules/npm/node_modules/uid-number/uid-number.js +usr/lib/node_modules/npm/node_modules/umask/index.js +usr/lib/node_modules/npm/node_modules/umask/package.json +usr/lib/node_modules/npm/node_modules/validate-npm-package-license/index.js +usr/lib/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js +usr/lib/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json +usr/lib/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json +usr/lib/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json +usr/lib/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js +usr/lib/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json +usr/lib/node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.generated.js +usr/lib/node_modules/npm/node_modules/validate-npm-package-license/package.json +usr/lib/node_modules/npm/node_modules/validate-npm-package-name/index.js +usr/lib/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json +usr/lib/node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json +usr/lib/node_modules/npm/node_modules/validate-npm-package-name/package.json +usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/access.js +usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/index.js +usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/package.json +usr/lib/node_modules/npm/node_modules/which/package.json +usr/lib/node_modules/npm/node_modules/which/which.js +usr/lib/node_modules/npm/node_modules/wrappy/package.json +usr/lib/node_modules/npm/node_modules/wrappy/wrappy.js +usr/lib/node_modules/npm/node_modules/write-file-atomic/index.js +usr/lib/node_modules/npm/node_modules/write-file-atomic/package.json +usr/lib/node_modules/npm/package.json +usr/lib/x86_64-linux-gnu/libstdc++.so.6 +usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 +usr/local/bin/getPublicId +usr/share/git-core/templates +usr/share/git-core/templates/branches +usr/share/git-core/templates/description +usr/share/git-core/templates/hooks +usr/share/git-core/templates/hooks/applypatch-msg.sample +usr/share/git-core/templates/hooks/commit-msg.sample +usr/share/git-core/templates/hooks/post-update.sample +usr/share/git-core/templates/hooks/pre-applypatch.sample +usr/share/git-core/templates/hooks/pre-commit.sample +usr/share/git-core/templates/hooks/pre-push.sample +usr/share/git-core/templates/hooks/pre-rebase.sample +usr/share/git-core/templates/hooks/prepare-commit-msg.sample +usr/share/git-core/templates/hooks/update.sample +usr/share/git-core/templates/info +usr/share/git-core/templates/info/exclude diff --git a/.sandstorm/sandstorm-pkgdef.capnp b/.sandstorm/sandstorm-pkgdef.capnp new file mode 100644 index 0000000..341d9bd --- /dev/null +++ b/.sandstorm/sandstorm-pkgdef.capnp @@ -0,0 +1,247 @@ +@0xbe60a96865f05cc2; + +using Spk = import "/sandstorm/package.capnp"; +# This imports: +# $SANDSTORM_HOME/latest/usr/include/sandstorm/package.capnp +# Check out that file to see the full, documented package definition format. + +const pkgdef :Spk.PackageDefinition = ( + # The package definition. Note that the spk tool looks specifically for the + # "pkgdef" constant. + + id = "ksyud8q9h7rx9u001jn38216xe75a200avh7tg267wss6pq9zfkh", + # Your app ID is actually its public key. The private key was placed in + # your keyring. All updates must be signed with the same key. + + manifest = ( + # This manifest is included in your app package to tell Sandstorm + # about your app. + + appTitle = (defaultText = "Hugo"), + + appVersion = 0, # Increment this for every release. + + appMarketingVersion = (defaultText = "0.17"), + # Human-readable representation of appVersion. Should match the way you + # identify versions of your app in documentation and marketing. + + actions = [ + # Define your "new document" handlers here. + ( nounPhrase = (defaultText = "site"), + command = .myCommand + # The command to run when starting for the first time. (".myCommand" + # is just a constant defined at the bottom of the file.) + ) + ], + + continueCommand = .myCommand, + # This is the command called to start your app back up after it has been + # shut down for inactivity. Here we're using the same command as for + # starting a new instance, but you could use different commands for each + # case. + + metadata = ( + # Data which is not needed specifically to execute the app, but is useful + # for purposes like marketing and display. These fields are documented at + # https://docs.sandstorm.io/en/latest/developing/publishing-apps/#add-required-metadata + # and (in deeper detail) in the sandstorm source code, in the Metadata section of + # https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/package.capnp + icons = ( + # Various icons to represent the app in various contexts. + #appGrid = (svg = embed "path/to/appgrid-128x128.svg"), + #grain = (svg = embed "path/to/grain-24x24.svg"), + #market = (svg = embed "path/to/market-150x150.svg"), + #marketBig = (svg = embed "path/to/market-big-300x300.svg"), + ), + + website = "https://gohugo.io", + # This should be the app's main website url. + + codeUrl = "https://github.com/ndarilek/hugo-sandstorm", + # URL of the app's source code repository, e.g. a GitHub URL. + # Required if you specify a license requiring redistributing code, but optional otherwise. + + license = (openSource = apache2), + # The license this package is distributed under. See + # https://docs.sandstorm.io/en/latest/developing/publishing-apps/#license + + categories = [webPublishing], + # A list of categories/genres to which this app belongs, sorted with best fit first. + # See the list of categories at + # https://docs.sandstorm.io/en/latest/developing/publishing-apps/#categories + + author = ( + # Fields relating to the author of this app. + + contactEmail = "nolan@thewordnerd.info", + # Email address to contact for any issues with this app. This includes end-user support + # requests as well as app store administrator requests, so it is very important that this be a + # valid address with someone paying attention to it. + + pgpSignature = embed "pgp-signature", + # PGP signature attesting responsibility for the app ID. This is a binary-format detached + # signature of the following ASCII message (not including the quotes, no newlines, and + # replacing with the standard base-32 text format of the app's ID): + # + # "I am the author of the Sandstorm.io app with the following ID: " + # + # You can create a signature file using `gpg` like so: + # + # echo -n "I am the author of the Sandstorm.io app with the following ID: " | gpg --sign > pgp-signature + # + # Further details including how to set up GPG and how to use keybase.io can be found + # at https://docs.sandstorm.io/en/latest/developing/publishing-apps/#verify-your-identity + + upstreamAuthor = "Hugo Team", + # Name of the original primary author of this app, if it is different from the person who + # produced the Sandstorm package. Setting this implies that the author connected to the PGP + # signature only "packaged" the app for Sandstorm, rather than developing the app. + # Remove this line if you consider yourself as the author of the app. + ), + + pgpKeyring = embed "pgp-keyring", + # A keyring in GPG keyring format containing all public keys needed to verify PGP signatures in + # this manifest (as of this writing, there is only one: `author.pgpSignature`). + # + # To generate a keyring containing just your public key, do: + # + # gpg --export > keyring + # + # Where `` is a PGP key ID or email address associated with the key. + + #description = (defaultText = embed "../description.md"), + # The app's description in Github-flavored Markdown format, to be displayed e.g. + # in an app store. Note that the Markdown is not permitted to contain HTML nor image tags (but + # you can include a list of screenshots separately). + + shortDescription = (defaultText = "static website generator"), + # A very short (one-to-three words) description of what the app does. For example, + # "Document editor", or "Notetaking", or "Email client". This will be displayed under the app + # title in the grid view in the app market. + + screenshots = [ + # Screenshots to use for marketing purposes. Examples below. + # Sizes are given in device-independent pixels, so if you took these + # screenshots on a Retina-style high DPI screen, divide each dimension by two. + + #(width = 746, height = 795, jpeg = embed "path/to/screenshot-1.jpeg"), + #(width = 640, height = 480, png = embed "path/to/screenshot-2.png"), + ], + #changeLog = (defaultText = embed "path/to/sandstorm-specific/changelog.md"), + # Documents the history of changes in Github-flavored markdown format (with the same restrictions + # as govern `description`). We recommend formatting this with an H1 heading for each version + # followed by a bullet list of changes. + ), + ), + + sourceMap = ( + # Here we defined where to look for files to copy into your package. The + # `spk dev` command actually figures out what files your app needs + # automatically by running it on a FUSE filesystem. So, the mappings + # here are only to tell it where to find files that the app wants. + searchPath = [ + ( sourcePath = "." ), # Search this directory first. + ( sourcePath = "/", # Then search the system root directory. + hidePaths = [ "home", "proc", "sys", + "etc/hosts", "etc/host.conf", + "etc/nsswitch.conf", "etc/resolv.conf" ] + # You probably don't want the app pulling files from these places, + # so we hide them. Note that /dev, /var, and /tmp are implicitly + # hidden because Sandstorm itself provides them. + ) + ] + ), + + fileList = "sandstorm-files.list", + # `spk dev` will write a list of all the files your app uses to this file. + # You should review it later, before shipping your app. + + alwaysInclude = [], + # Fill this list with more names of files or directories that should be + # included in your package, even if not listed in sandstorm-files.list. + # Use this to force-include stuff that you know you need but which may + # not have been detected as a dependency during `spk dev`. If you list + # a directory here, its entire contents will be included recursively. + + #bridgeConfig = ( + # # Used for integrating permissions and roles into the Sandstorm shell + # # and for sandstorm-http-bridge to pass to your app. + # # Uncomment this block and adjust the permissions and roles to make + # # sense for your app. + # # For more information, see high-level documentation at + # # https://docs.sandstorm.io/en/latest/developing/auth/ + # # and advanced details in the "BridgeConfig" section of + # # https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/package.capnp + # viewInfo = ( + # # For details on the viewInfo field, consult "ViewInfo" in + # # https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/grain.capnp + # + # permissions = [ + # # Permissions which a user may or may not possess. A user's current + # # permissions are passed to the app as a comma-separated list of `name` + # # fields in the X-Sandstorm-Permissions header with each request. + # # + # # IMPORTANT: only ever append to this list! Reordering or removing fields + # # will change behavior and permissions for existing grains! To deprecate a + # # permission, or for more information, see "PermissionDef" in + # # https://github.com/sandstorm-io/sandstorm/blob/master/src/sandstorm/grain.capnp + # ( + # name = "editor", + # # Name of the permission, used as an identifier for the permission in cases where string + # # names are preferred. Used in sandstorm-http-bridge's X-Sandstorm-Permissions HTTP header. + # + # title = (defaultText = "editor"), + # # Display name of the permission, e.g. to display in a checklist of permissions + # # that may be assigned when sharing. + # + # description = (defaultText = "grants ability to modify data"), + # # Prose describing what this role means, suitable for a tool tip or similar help text. + # ), + # ], + # roles = [ + # # Roles are logical collections of permissions. For instance, your app may have + # # a "viewer" role and an "editor" role + # ( + # title = (defaultText = "editor"), + # # Name of the role. Shown in the Sandstorm UI to indicate which users have which roles. + # + # permissions = [true], + # # An array indicating which permissions this role carries. + # # It should be the same length as the permissions array in + # # viewInfo, and the order of the lists must match. + # + # verbPhrase = (defaultText = "can make changes to the document"), + # # Brief explanatory text to show in the sharing UI indicating + # # what a user assigned this role will be able to do with the grain. + # + # description = (defaultText = "editors may view all site data and change settings."), + # # Prose describing what this role means, suitable for a tool tip or similar help text. + # ), + # ( + # title = (defaultText = "viewer"), + # permissions = [false], + # verbPhrase = (defaultText = "can view the document"), + # description = (defaultText = "viewers may view what other users have written."), + # ), + # ], + # ), + # #apiPath = "/api", + # # Apps can export an API to the world. The API is to be used primarily by Javascript + # # code and native apps, so it can't serve out regular HTML to browsers. If a request + # # comes in to your app's API, sandstorm-http-bridge will prefix the request's path with + # # this string, if specified. + #), +); + +const myCommand :Spk.Manifest.Command = ( + # Here we define the command used to start up your server. + argv = ["/sandstorm-http-bridge", "8000", "--", "/opt/app/.sandstorm/launcher.sh"], + environ = [ + # Note that this defines the *entire* environment seen by your app. + (key = "PATH", value = "/usr/local/bin:/usr/bin:/bin"), + (key = "SANDSTORM", value = "1"), + # Export SANDSTORM=1 into the environment, so that apps running within Sandstorm + # can detect if $SANDSTORM="1" at runtime, switching UI and/or backend to use + # the app's Sandstorm-specific integration code. + ] +); diff --git a/.sandstorm/setup.sh b/.sandstorm/setup.sh new file mode 100755 index 0000000..416d0e5 --- /dev/null +++ b/.sandstorm/setup.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# When you change this file, you must take manual action. Read this doc: +# - https://docs.sandstorm.io/en/latest/vagrant-spk/customizing/#setupsh + +set -euo pipefail + +apt-get update +apt-get install -y git + +### Download & compile capnproto and the Sandstorm getPublicId helper. + +# First, get capnproto from master and install it to +# /usr/local/bin. This requires a C++ compiler. We opt for clang +# because that's what Sandstorm is typically compiled with. +if [ ! -e /usr/local/bin/capnp ] ; then + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q clang autoconf pkg-config libtool + cd /tmp + if [ ! -e capnproto ]; then git clone https://github.com/sandstorm-io/capnproto; fi + cd capnproto + git checkout master + cd c++ + autoreconf -i + ./configure + make -j2 + sudo make install +fi + +### Download & compile capnproto and the Sandstorm getPublicId helper. + +# First, get capnproto from master and install it to +# /usr/local/bin. This requires a C++ compiler. We opt for clang +# because that's what Sandstorm is typically compiled with. +if [ ! -e /usr/local/bin/capnp ] ; then + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -q clang autoconf pkg-config libtool + cd /tmp + if [ ! -e capnproto ]; then git clone https://github.com/sandstorm-io/capnproto; fi + cd capnproto + git checkout master + cd c++ + autoreconf -i + ./configure + make -j2 + sudo make install +fi + +# Second, compile the small C++ program within +# /opt/app/sandstorm-integration. +if [ ! -e /opt/app/sandstorm-integration/getPublicId ] ; then + pushd /opt/app/sandstorm-integration + make +fi + +cp /opt/app/sandstorm-integration/bin/getPublicId /usr/local/bin + +curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - +apt-get install -y nodejs + +cd /tmp +wget https://github.com/spf13/hugo/releases/download/v0.17/hugo_0.17-64bit.deb -O hugo.deb +dpkg -i hugo.deb +rm hugo.deb diff --git a/.sandstorm/stack b/.sandstorm/stack new file mode 100644 index 0000000..7c3182e --- /dev/null +++ b/.sandstorm/stack @@ -0,0 +1 @@ +diy diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..8165505 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3 @@ +# V0 (2016-10-10) + + * Initial release. diff --git a/app.js b/app.js new file mode 100644 index 0000000..4262636 --- /dev/null +++ b/app.js @@ -0,0 +1,51 @@ +var express = require("express"), + path = require("path"), + logger = require("morgan") + +const routes = require("./routes") + +const app = express() + +// view engine setup +app.set("views", path.join(__dirname, "views")) +app.set("view engine", "jade") + +app.use(logger("dev")) +app.use(express.static(path.join(__dirname, "public"))) + +app.use('/', routes) + +// catch 404 and forward to error handler +app.use((req, res, next) => { + const err = new Error("Not Found") + err.status = 404 + next(err) +}) + +// error handlers + +// development error handler +// will print stacktrace +if (app.get("env") === 'development') { + app.use((err, req, res, next) => { + res.status(err.status || 500) + res.render("error", { + message: err.message, + error: err + }) + }) +} + +// production error handler +// no stacktraces leaked to user +app.use((err, req, res, next) => { + res.status(err.status || 500) + res.render("error", { + message: err.message, + error: {} + }) +}) + +app.listen(8000, () => console.log("Listening on port 8000")) + +module.exports = app diff --git a/description.md b/description.md new file mode 100644 index 0000000..4cfa413 --- /dev/null +++ b/description.md @@ -0,0 +1 @@ +Easily create HTML, PDF, RTF and DocX resumes in Markdown. Resume sources are stored in a Git repository and updated automatically on push. The output is hosted on either a random Sandstorm subdomain, or on a custom domain as configured. diff --git a/package.json b/package.json new file mode 100644 index 0000000..c7c1ebf --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "name": "hugo", + "version": "0.0.0", + "private": true, + "scripts": { + "start": "node ./app" + }, + "dependencies": { + "express": "~4.13.4", + "git-http-backend": "^1.0.1", + "jade": "~1.11.0", + "morgan": "~1.7.0" + } +} diff --git a/post-receive b/post-receive new file mode 100755 index 0000000..27a9d2b --- /dev/null +++ b/post-receive @@ -0,0 +1,6 @@ +#!/bin/sh + +cd /var/git +env -i git reset --hard +mkdir -p content +hugo -d /var/www diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css new file mode 100644 index 0000000..9453385 --- /dev/null +++ b/public/stylesheets/style.css @@ -0,0 +1,8 @@ +body { + padding: 50px; + font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; +} + +a { + color: #00B7FF; +} diff --git a/routes.js b/routes.js new file mode 100644 index 0000000..5d38fba --- /dev/null +++ b/routes.js @@ -0,0 +1,35 @@ +var exec = require("child_process").exec, + express = require('express'), + router = express.Router(), + gitBackend = require("git-http-backend"), + spawn = require("child_process").spawn + +router.get('/', (req, res) => res.render("index")); + +router.get("/publicId", (req, res) => { + const sessionId = req.headers["x-sandstorm-session-id"] + exec(`getPublicId ${sessionId}`, (err, rv) => { + if(err) + return res.end(err) + const lines = rv.split("\n") + const publicId = lines[0] + const hostname = lines[1] + const domain = publicId+"."+hostname + const url = lines[2] + const isDemo = lines[3] == "true" + res.render("publicId", {domain, isDemo, publicId, url}) + }) +}) + +router.use("/git", (req, res) => { + req.pipe(gitBackend(req.url, (err, service) => { + if(err) + return res.end(err+"\n") + res.setHeader("content-type", service.type) + console.log("cmd", service.cmd) + const ps = spawn(service.cmd, service.args.concat("/var/git")) + ps.stdout.pipe(service.createStream()).pipe(ps.stdin) + })).pipe(res) +}) + +module.exports = router diff --git a/sandstorm-integration/.gitignore b/sandstorm-integration/.gitignore new file mode 100644 index 0000000..83b2c94 --- /dev/null +++ b/sandstorm-integration/.gitignore @@ -0,0 +1,2 @@ +tmp +bin \ No newline at end of file diff --git a/sandstorm-integration/Makefile b/sandstorm-integration/Makefile new file mode 100644 index 0000000..80b41ce --- /dev/null +++ b/sandstorm-integration/Makefile @@ -0,0 +1,24 @@ +# You may override the following vars on the command line to suit +# your config. +CXX=clang++ +CXXFLAGS=-O2 -Wall + +# You generally should not modify these. +CXXFLAGS2=-std=c++1y -Itmp $(CXXFLAGS) + +.PHONY: all clean + +all: bin/getPublicId + +clean: + rm -rf bin tmp + +bin/getPublicId: tmp/genfiles getPublicId.c++ + @mkdir -p bin + @$(CXX) getPublicId.c++ tmp/sandstorm/*.capnp.c++ -o bin/getPublicId -static $(CXXFLAGS2) `pkg-config capnp-rpc --cflags --libs` + +tmp/genfiles: /opt/sandstorm/latest/usr/include/sandstorm/*.capnp + @echo "generating capnp files..." + @mkdir -p tmp + @capnp compile --src-prefix=/opt/sandstorm/latest/usr/include -oc++:tmp /opt/sandstorm/latest/usr/include/sandstorm/*.capnp + @touch tmp/genfiles \ No newline at end of file diff --git a/sandstorm-integration/getPublicId.c++ b/sandstorm-integration/getPublicId.c++ new file mode 100644 index 0000000..635cfe6 --- /dev/null +++ b/sandstorm-integration/getPublicId.c++ @@ -0,0 +1,75 @@ +// Sandstorm - Personal Cloud Sandbox +// Copyright (c) 2014 Sandstorm Development Group, Inc. and contributors +// + +// Hack around stdlib bug with C++14. +#include // force libstdc++ to include its config +#undef _GLIBCXX_HAVE_GETS // correct broken config +// End hack. + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace sandstorm { + + class GetPublicIdMain { + public: + GetPublicIdMain(kj::ProcessContext& context): context(context) { } + + kj::MainFunc getMain() { + return kj::MainBuilder(context, "GetPublicId version: 0.0.2", + "Runs the getPublicId command from hack-session.capnp. " + "Outputs the return arguments as separate lines on stdout.") + .expectArg("", KJ_BIND_METHOD(*this, setSessionId)) + .callAfterParsing(KJ_BIND_METHOD(*this, run)) + .build(); + } + + kj::MainBuilder::Validity setSessionId(kj::StringPtr id) { + sessionId = kj::heapString(id); + return true; + } + + kj::MainBuilder::Validity run() { + capnp::EzRpcClient client("unix:/tmp/sandstorm-api"); + SandstormHttpBridge::Client restorer = client.getMain(); + + auto request = restorer.getSessionContextRequest(); + request.setId(sessionId); + auto session = request.send().getContext().castAs(); + + kj::Promise promise = session.getPublicIdRequest().send().then([](auto result) { + auto publicId = result.getPublicId(); + auto hostname = result.getHostname(); + auto autoUrl = result.getAutoUrl(); + auto isDemoUser = result.getIsDemoUser(); + kj::String msg = kj::str(publicId, "\n", hostname, "\n", autoUrl, "\n", + isDemoUser ? "true" : "false", "\n"); + kj::FdOutputStream(STDOUT_FILENO).write(msg.begin(), msg.size()); + }, [] (auto e) { + auto desc = e.getDescription(); + kj::FdOutputStream(STDOUT_FILENO).write(desc.begin(), desc.size()); + }); + + promise.wait(client.getWaitScope()); + return true; + } + + private: + kj::ProcessContext& context; + kj::String sessionId; + }; + +} // namespace sandstorm + +KJ_MAIN(sandstorm::GetPublicIdMain) diff --git a/views/error.jade b/views/error.jade new file mode 100644 index 0000000..51ec12c --- /dev/null +++ b/views/error.jade @@ -0,0 +1,6 @@ +extends layout + +block content + h1= message + h2= error.status + pre #{error.stack} diff --git a/views/index.jade b/views/index.jade new file mode 100644 index 0000000..7410db6 --- /dev/null +++ b/views/index.jade @@ -0,0 +1,28 @@ +extends layout + +block content + h1 Hugo + iframe(src = "/publicId" style = "width: 100%; margin: 0; border: 0;") + p To check out the Git repository containing your site, first add an authorization key to Git: + iframe#gitAuthorize(style = "width: 100%; height: 55px; margin: 0; border: 0;") + p Then run the following: + iframe#gitClone(style = "width: 100%; height: 55px; margin: 0; border: 0;") + script. + document.addEventListener("DOMContentLoaded", function() { + window.parent.postMessage({renderTemplate: { + rpcId: "gitAuthorize", + template: "echo url=" + window.location.protocol + "//git:$API_TOKEN@$API_HOST | git -c credential.helper=store credential approve" + }}, "*") + window.parent.postMessage({renderTemplate: { + rpcId: "gitClone", + template: "git clone -c credential.helper=store " + window.location.protocol + "//git@$API_HOST/git site" + }}, "*") + }) + window.addEventListener("message", function(event) { + if(event.data.error) + console.log(error) + else { + var el = document.getElementById(event.data.rpcId) + el.setAttribute("src", event.data.uri) + } + }) diff --git a/views/layout.jade b/views/layout.jade new file mode 100644 index 0000000..ff26de2 --- /dev/null +++ b/views/layout.jade @@ -0,0 +1,6 @@ +doctype html +html + head + link(rel='stylesheet', href='/stylesheets/style.css') + body + block content diff --git a/views/publicId.jade b/views/publicId.jade new file mode 100644 index 0000000..57cd5c9 --- /dev/null +++ b/views/publicId.jade @@ -0,0 +1,23 @@ +extends layout + +block content + p + | This site is available at + a(href = url target = "_blank")= url + | . + - if(!isDemo) + p Alternatively, you can publish it at your own custom domain by creating the following DNS records: + table + thead + th Name + th Type + th Value + tbody + tr + td example.com + td CNAME + td= domain + tr + td sandstorm-www.example.com + td TXT + td= publicId