kopia lustrzana https://github.com/c9/core
don't rely on external npm packages
rodzic
56138a25ba
commit
cf0c1602f5
3
b9/b9
3
b9/b9
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"name": "b9-utils",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"async": "^1.5.2",
|
||||
"lodash": "^4.2.1",
|
||||
"optimist": "^0.6.1"
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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
|
||||
|
|
Ładowanie…
Reference in New Issue