Last active
January 4, 2016 12:22
-
-
Save datakurre/310bd688d2962edf9fe3 to your computer and use it in GitHub Desktop.
Nix shell for RabbitMQ under $PWD with metronome plugin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
with import <nixpkgs> {}; | |
let dependencies = rec { | |
_rabbitmq_plugins = stdenv.mkDerivation rec { | |
name = "rabbitmq-plugins-${version}"; | |
version = rabbitmq_server.version; | |
buildInputs = [ git python libxslt mercurial erlangR16 zip unzip ]; | |
unpackPhase = ""; | |
builder = builtins.toFile "builder.sh" '' | |
source $stdenv/setup | |
git clone https://github.com/rabbitmq/rabbitmq-public-umbrella | |
cd rabbitmq-public-umbrella | |
git checkout rabbitmq_v`echo $version|sed -e 's/\./_/g'` | |
make co | |
make BRANCH=rabbitmq_v`echo $version|sed -e 's/\./_/g'` up_c | |
rm -rf rabbitmq-amqp1.0 # BUILD BROKEN | |
PLUGINS_DIST_DIR=$out make plugins-dist | |
make -C rabbitmq-metronome dist | |
cp rabbitmq-metronome/dist/*.ez $out | |
''; | |
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; | |
}; | |
_rabbitmq_config = builtins.toFile "rabbitmq.config" ''[ | |
{rabbit, [ | |
{vm_memory_high_watermark, 0.5}, | |
{disk_free_limit, 100000000} | |
]}, | |
{rabbitmq_management, [ | |
{load_definitions, "${_rabbitmq_json}"} | |
]} | |
].''; | |
_enabled_plugins = builtins.toFile "enabled_plugins" "[ | |
rabbitmq_management,rabbitmq_metronome | |
]."; | |
_rabbitmq_json = builtins.toFile "rabbitmq.json" ''{ | |
"users": [{ | |
"tags": "administrator", | |
"name": "guest", | |
"password": "guest" | |
}], | |
"vhosts": [ | |
{"name": "/"} | |
], | |
"permissions": [{ | |
"write": ".*", | |
"vhost": "/", | |
"read": ".*", | |
"user": "guest", | |
"configure": ".*" | |
}] | |
}''; | |
}; | |
in with dependencies; | |
stdenv.mkDerivation { | |
name = "env"; | |
buildInputs = [ | |
(rabbitmq_server.override { erlang = erlangR16; }) | |
]; | |
shellHook = '' | |
export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt | |
mkdir -p .rabbitmq_server | |
mkdir -p .rabbitmq_server/mnesia | |
export RABBITMQ_LOG_BASE=`pwd`/.rabbitmq_server | |
export RABBITMQ_MNESIA_BASE=`pwd`/.rabbitmq_server/mnesia | |
export RABBITMQ_PLUGINS_DIR=${_rabbitmq_plugins} | |
export RABBITMQ_ENABLED_PLUGINS_FILE=${_enabled_plugins} | |
export RABBITMQ_CONFIG_FILE=`echo ${_rabbitmq_config}|sed "s/.config//"` | |
''; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment