BefatorNix/runService2.nix
2025-08-25 15:06:11 +02:00

62 lines
2.2 KiB
Nix

{stdenv, writeShellApplication, git, gnumake, mysql, python27, django, lxml, django-environ, django-session-csrf,
django-mozilla-product-details, dockerflow, django-csp, django-aesfield, django-extensions, raven, django-rest-framework,
django-waffle, jingo-minify, django-jinja, puente, django-statsd-mozilla, django-cache-machine, python-memcached, elasticsearch,
django-multidb-router, mysqlclient, bleach, easy-thumbnails, amo-validator, flufl-lock, signing-clients, mozilla-logger,
pyOpenSSL, django-rest-framework-jwt, celery, nobot}: writeShellApplication rec {
name = "service2";
#propagatedBuildInputs = [python26Packages.setuptools];
#nativeBuildInputs = [ jinja2 ];
#buildInputs = [ jinja2 ];
runtimeInputs = [git gnumake mysql (python27.withPackages(ps: [django lxml django-environ django-session-csrf django-mozilla-product-details
dockerflow django-csp django-aesfield django-extensions raven django-rest-framework django-waffle jingo-minify django-jinja
puente django-statsd-mozilla django-cache-machine python-memcached elasticsearch django-multidb-router mysqlclient bleach
easy-thumbnails amo-validator flufl-lock signing-clients mozilla-logger pyOpenSSL django-rest-framework-jwt celery nobot]))];
#env = {
# NIX_CFLAGS_COMPILE="-Wno-incompatible-pointer-types";
#};
text = ''
if [ ! -d "amo" ]; then
mkdir amo
cd amo
git clone https://github.com/mozilla/addons-server.git --progress
cd addons-server
git switch 8b4423547f932b2d9fa2b5a9c81d399bdc29bd6e --detach --progress
#git revert e971a1c0543c66fd513e9c1c06f7786eb2f92b31
cd ../..
fi
cd amo
dbDir="$(pwd)/db"
cd addons-server
PYTHONPATH="$(pwd)/src"
export PYTHONPATH
trap 'kill $dbServer && sleep 6' EXIT
if [ ! -d "$dbDir" ]; then
mkdir "$dbDir"
mysql_install_db --datadir="$dbDir"
mysqld --datadir="$dbDir" &
dbServer="$!"
sleep 3
echo "CREATE DATABASE olympia CHARACTER SET utf8 COLLATE utf8_unicode_ci;" | mysql -u root
make -f Makefile-docker initialize_db
kill "$dbServer"
sleep 6
fi
mysqld --datadir="$dbDir" &
dbServer="$!"
sleep 3
python ./manage.py
'';
}