Use added ruby support in devshell

This commit is contained in:
Charlotte Van Petegem 2023-03-14 14:00:31 +01:00
parent 15c5fcaf15
commit 2e49db495a
No known key found for this signature in database
GPG key ID: 019E764B7184435A
5 changed files with 18 additions and 51 deletions

4
flake.lock generated
View file

@ -153,11 +153,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1678792404, "lastModified": 1678798690,
"narHash": "sha256-ES6PnlxlQ8ROzHhMKUzuvwmTZvoift1LXyG+LN7TBNI=", "narHash": "sha256-ES6PnlxlQ8ROzHhMKUzuvwmTZvoift1LXyG+LN7TBNI=",
"owner": "chvp", "owner": "chvp",
"repo": "devshell", "repo": "devshell",
"rev": "a3869357ec18d35dc10083dd0fef42fddf4f7f17", "rev": "5f31e3757888be373af78b724982bb4018406c98",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -16,24 +16,18 @@ let
in in
pkgs.devshell.mkShell { pkgs.devshell.mkShell {
name = "Dodona"; name = "Dodona";
imports = [ "${inputs.devshell}/extra/language/c.nix" ]; imports = [ "${inputs.devshell}/extra/language/ruby.nix" ];
packages = with pkgs; [ packages = with pkgs; [
(pkgs.lowPrio binutils)
chromedriver chromedriver
ungoogled-chromium ungoogled-chromium
findutils
gnumake
nodejs nodejs
nodePackages.typescript-language-server nodePackages.typescript-language-server
ruby_3_1
rubyPackages_3_1.solargraph rubyPackages_3_1.solargraph
yarn yarn
]; ];
env = [ env = [
{ name = "DATABASE_URL"; value = "mysql2://root:dodona@127.0.0.1:3306/dodona"; } { name = "DATABASE_URL"; value = "mysql2://root:dodona@127.0.0.1:3306/dodona"; }
{ name = "TEST_DATABASE_URL"; value = "mysql2://root:dodona@127.0.0.1:3306/dodona_test"; } { name = "TEST_DATABASE_URL"; value = "mysql2://root:dodona@127.0.0.1:3306/dodona_test"; }
{ name = "GEM_HOME"; eval = "$PRJ_DATA_DIR/bundle/$(ruby -e 'puts RUBY_VERSION')"; }
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
]; ];
commands = [ commands = [
{ {
@ -65,9 +59,8 @@ pkgs.devshell.mkShell {
server.services = all-services; server.services = all-services;
server-support.services = support-services; server-support.services = support-services;
}; };
language.c = { language.ruby = {
compiler = pkgs.gcc; package = pkgs.ruby_3_1;
includes = [ pkgs.libmysqlclient pkgs.zlib pkgs.libffi ]; nativeDeps = [ pkgs.libmysqlclient pkgs.zlib pkgs.libffi ];
libraries = [ pkgs.libmysqlclient pkgs.zlib pkgs.libffi ];
}; };
} }

View file

@ -1,10 +1,8 @@
{ pkgs, inputs }: pkgs.devshell.mkShell { { pkgs, inputs }: pkgs.devshell.mkShell {
name = "Gamification 2"; name = "Gamification 2";
imports = [ "${inputs.devshell}/extra/language/c.nix" ]; imports = [ "${inputs.devshell}/extra/language/ruby.nix" ];
env = [ env = [
{ name = "DATABASE_HOST"; eval = "$PGDATA"; } { name = "DATABASE_HOST"; eval = "$PGDATA"; }
{ name = "GEM_HOME"; eval = "$PRJ_DATA_DIR/bundle/$(ruby -e 'puts RUBY_VERSION')"; }
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
{ name = "PGDATA"; eval = "$PRJ_DATA_DIR/postgres"; } { name = "PGDATA"; eval = "$PRJ_DATA_DIR/postgres"; }
]; ];
commands = [ commands = [
@ -48,22 +46,17 @@
} }
]; ];
packages = with pkgs; [ packages = with pkgs; [
(pkgs.lowPrio binutils)
findutils
cmake cmake
gnumake
nodejs nodejs
postgresql_14 postgresql_14
ruby_3_1
yarn yarn
]; ];
serviceGroups.server.services = { serviceGroups.server.services = {
web.command = "rails s -p 3000"; web.command = "rails s -p 3000";
postgres.command = "pg:start"; postgres.command = "pg:start";
}; };
language.c = { language.ruby = {
compiler = pkgs.gcc; package = pkgs.ruby_3_1;
includes = [ pkgs.zlib pkgs.openssl ]; nativeDeps = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ];
libraries = [ pkgs.zlib pkgs.openssl ];
}; };
} }

View file

@ -1,6 +1,6 @@
{ pkgs, inputs }: pkgs.devshell.mkShell { { pkgs, inputs }: pkgs.devshell.mkShell {
name = "Tab"; name = "Tab";
imports = [ "${inputs.devshell}/extra/language/c.nix" ]; imports = [ "${inputs.devshell}/extra/language/ruby.nix" ];
commands = [ commands = [
{ {
name = "refresh-deps"; name = "refresh-deps";
@ -13,26 +13,17 @@
''; '';
} }
]; ];
env = [
{ name = "GEM_HOME"; eval = "$PRJ_DATA_DIR/bundle/$(ruby -e 'puts RUBY_VERSION')"; }
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
];
serviceGroups.server.services = { serviceGroups.server.services = {
web.command = "rails s -p 3000"; web.command = "rails s -p 3000";
js.command = "yarn build:dev --watch"; js.command = "yarn build:dev --watch";
css.command = "yarn build:css --watch"; css.command = "yarn build:css --watch";
}; };
packages = with pkgs; [ packages = with pkgs; [
(pkgs.lowPrio binutils)
findutils
gnumake
ruby_3_1
nodejs nodejs
yarn yarn
]; ];
language.c = { language.ruby = {
compiler = pkgs.gcc; package = pkgs.ruby_3_1;
includes = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ]; nativeDeps = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ];
libraries = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ];
}; };
} }

View file

@ -1,6 +1,6 @@
{ pkgs, inputs }: pkgs.devshell.mkShell { { pkgs, inputs }: pkgs.devshell.mkShell {
name = "Tap"; name = "Tap";
imports = [ "${inputs.devshell}/extra/language/c.nix" ]; imports = [ "${inputs.devshell}/extra/language/ruby.nix" ];
commands = [ commands = [
{ {
name = "refresh-deps"; name = "refresh-deps";
@ -13,17 +13,8 @@
''; '';
} }
]; ];
env = [
{ name = "GEM_HOME"; eval = "$PRJ_DATA_DIR/bundle/$(ruby -e 'puts RUBY_VERSION')"; }
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
];
packages = with pkgs; [ packages = with pkgs; [
(pkgs.lowPrio binutils)
imagemagick imagemagick
file
findutils
gnumake
ruby_3_0
nodejs nodejs
yarn yarn
]; ];
@ -31,9 +22,8 @@
name = "server"; name = "server";
command = "rails s -p 3000"; command = "rails s -p 3000";
}; };
language.c = { language.ruby = {
compiler = pkgs.gcc; package = pkgs.ruby_3_0;
includes = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ]; nativeDeps = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ];
libraries = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ];
}; };
} }