don't rely on external npm packages

pull/248/head
Fabian Jakobs 2016-02-04 10:33:04 +00:00
rodzic 56138a25ba
commit cf0c1602f5
5 zmienionych plików z 85 dodań i 26 usunięć

3
b9/b9
Wyświetl plik

@ -13,7 +13,8 @@ B9=$B9_DIR/b9
source ./lib/_init.sh
NODEJS=$(_b9_init_find_nodejs)
NODEJS=$(_b9_init_nodejs)
NPM=$(_b9_init_npm)
TMPDIR=$(_b9_init_temp)
TMP=$TMPDIR

Wyświetl plik

@ -18,7 +18,7 @@ _b9_init_temp() {
echo $TMPDIR
}
_b9_init_find_nodejs() {
_b9_init_nodejs() {
local NODEJS
. ~/.nvm/nvm.sh &> /dev/null || :
@ -33,4 +33,20 @@ _b9_init_find_nodejs() {
fi
echo $NODEJS
}
_b9_init_npm() {
local NPM
for NPM in $(which npm) /usr/local/bin/npm /usr/bin/npm; do
[ -x $NPM ] && break
NPM=""
done
if [ -z "$NPM" ]; then
echo "Can't find npm executable" 1>&2
exit 1
fi
echo $NPM
}

Wyświetl plik

@ -0,0 +1,9 @@
{
"name": "b9-utils",
"private": true,
"dependencies": {
"async": "^1.5.2",
"lodash": "^4.2.1",
"optimist": "^0.6.1"
}
}

Wyświetl plik

@ -1,26 +1,53 @@
"use strict";
var request = require('request');
var https = require("https");
var DATADOG_API_KEY = '64e56d39dfdd7f2bbf06f09100d51a18';
var DATADOG_API_URL = 'https://app.datadoghq.com/api/v1/events';
var DATADOG_API_URL = 'https://app.datadoghq.com';
module.exports = releaseEvent;
if (!module.parent) {
var argv = process.argv;
releaseEvent(argv[2], argv[3], argv[4], argv[5]);
releaseEvent(argv[2], argv[3], argv[4], argv[5], function(err) {
if (err) {
console.error("Error posting release event to datadog" + err.message);
process.exit(1);
}
process.exit(0);
});
}
function datadogEvent(msg, callback) {
request.post({
url: DATADOG_API_URL,
qs: { api_key: DATADOG_API_KEY },
json: msg
}, callback);
var payload = JSON.stringify(msg);
var req = https.request({
hostname: "app.datadoghq.com",
port: 443,
path: "/api/v1/events?api_key=" + encodeURIComponent(DATADOG_API_KEY),
method: "POST",
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
"Content-Length": payload.length
}
}, function(res) {
if (res.statusCode >= 400)
return callback(new Error("request failed with status code " + res.statusCode));
callback();
});
req.on("error", function(e) {
callback(e);
});
req.write(payload);
req.end();
}
function releaseEvent(application, mode, version, pattern) {
function releaseEvent(application, mode, version, pattern, callback) {
datadogEvent({
title: 'Release: ' + application + ' version ' + version + ' to "' + pattern + '"',
tags: [
@ -30,7 +57,5 @@ function releaseEvent(application, mode, version, pattern) {
'version:' + version,
'pattern:' + pattern
]
}, function(err) {
if (err) console.error("Error posting release event to datadog" + err.message);
});
}, callback);
}

Wyświetl plik

@ -6,20 +6,28 @@ _d9_package_sync_workdir_docker() {
pushd $WORKDIR &> /dev/null
_do_package_docker_init_source $WORKDIR $SOURCE $VERSION $SETTINGS
_do_package_docker_init_workdir
_b9_package_docker_init_source $WORKDIR $SOURCE $VERSION $SETTINGS
_b9_package_docker_init_workdir
_do_package_docker_node_modules $WORKDIR $SOURCE $SETTINGS
_do_package_docker_generate_settings $WORKDIR $SOURCE $SETTINGS
_do_package_docker_include_files $WORKDIR $SOURCE $SETTINGS
_do_package_docker_copy_plugins $WORKDIR $SOURCE $SETTINGS
_b9_init_node_helper
_b9_package_docker_node_modules $WORKDIR $SOURCE $SETTINGS
_b9_package_docker_generate_settings $WORKDIR $SOURCE $SETTINGS
_b9_package_docker_include_files $WORKDIR $SOURCE $SETTINGS
_b9_package_docker_copy_plugins $WORKDIR $SOURCE $SETTINGS
rm -rf $SOURCE
popd &> /dev/null
}
_do_package_docker_init_source() {
_b9_init_node_helper() {
pushd $B9_DIR/lib/js &> /dev/null
rm -rf node_modules
$NPM install
popd &> /dev/null
}
_b9_package_docker_init_source() {
local WORKDIR=$1
local SOURCE=$2
local VERSION=$3
@ -32,14 +40,14 @@ _do_package_docker_init_source() {
_d9_package_npm_install $SOURCE
}
_do_package_docker_init_workdir() {
_b9_package_docker_init_workdir() {
mkdir -p plugins
mkdir -p node_modules
mkdir -p settings
mkdir -p configs
}
_do_package_docker_node_modules() {
_b9_package_docker_node_modules() {
local WORKDIR=$1
local SOURCE=$2
local SETTINGS=$3
@ -64,7 +72,7 @@ _do_package_docker_node_modules() {
popd &> /dev/null
}
_do_package_docker_generate_settings() {
_b9_package_docker_generate_settings() {
local WORKDIR=$1
local SOURCE=$2
local SETTINGS=$3
@ -72,7 +80,7 @@ _do_package_docker_generate_settings() {
$NODEJS $B9_DIR/lib/js/generate_settings.js docker --targetFile=$WORKDIR/settings/$SETTINGS.js --source=$SOURCE --settings=$SETTINGS
}
_do_package_docker_include_files() {
_b9_package_docker_include_files() {
local WORKDIR=$1
local SOURCE=$2
local SETTINGS=$3
@ -100,7 +108,7 @@ _do_package_docker_include_files() {
popd &> /dev/null
}
_do_package_docker_copy_plugins() {
_b9_package_docker_copy_plugins() {
local WORKDIR=$1
local SOURCE=$2
local SETTINGS=$3