From 80ea8b0322a5b1edaeeea152ae2a1d90dcad74e6 Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Wed, 19 Apr 2023 18:23:55 +0200 Subject: [PATCH] Add gandalf shell --- shells/gandalf.nix | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 shells/gandalf.nix diff --git a/shells/gandalf.nix b/shells/gandalf.nix new file mode 100644 index 00000000..67f0b70d --- /dev/null +++ b/shells/gandalf.nix @@ -0,0 +1,45 @@ +{ pkgs, inputs }: pkgs.devshell.mkShell { + name = "Gandalf"; + imports = [ "${inputs.devshell}/extra/language/ruby.nix" ]; + commands = [ + { + name = "refresh-deps"; + category = "general commands"; + help = "Install dependencies"; + command = '' + yarn install + bundle install + bundle pristine + ''; + } + { + name = "mysql"; + category = "general commands"; + help = "Start mysql (in docker container)"; + command = '' + docker run --name gandalf-db -p 3306:3306 --rm -v gandalf-db-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=gandalf mariadb:latest + ''; + } + ]; + packages = with pkgs; [ + imagemagick + libyaml + nodejs + yarn + ]; + env = [ + { name = "DATABASE_URL"; value = "mysql2://root:gandalf@127.0.0.1:3306/gandalf"; } + { name = "TEST_DATABASE_URL"; value = "mysql2://root:gandalf@127.0.0.1:3306/gandalf_test"; } + ]; + serviceGroups.server.services = { + rails = { + name = "server"; + command = "rails s -p 3000"; + }; + mysql.command = "mysql"; + }; + language.ruby = { + package = pkgs.ruby_3_0; + nativeDeps = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ]; + }; +}