45 lines
1,000 B
Nix
45 lines
1,000 B
Nix
{ pkgs, inputs, ... }:
|
|
let
|
|
support-services = {
|
|
css.command = "yarn build:css --watch";
|
|
js.command = "yarn build:js --watch=forever";
|
|
};
|
|
all-services = support-services // {
|
|
rails = {
|
|
name = "server";
|
|
command = "rails s -p 3000";
|
|
};
|
|
};
|
|
in
|
|
pkgs.devshell.mkShell {
|
|
name = "Entrance exam";
|
|
imports = [ "${inputs.devshell}/extra/language/ruby.nix" ];
|
|
packages = with pkgs; [
|
|
chromedriver
|
|
ungoogled-chromium
|
|
nodejs
|
|
nodePackages.typescript-language-server
|
|
yarn
|
|
bundix
|
|
];
|
|
commands = [
|
|
{
|
|
name = "refresh-deps";
|
|
category = "general commands";
|
|
help = "Install dependencies";
|
|
command = ''
|
|
yarn install
|
|
bundle install
|
|
bundle pristine
|
|
'';
|
|
}
|
|
];
|
|
serviceGroups = {
|
|
server.services = all-services;
|
|
server-support.services = support-services;
|
|
};
|
|
language.ruby = {
|
|
package = pkgs.ruby_3_4;
|
|
nativeDeps = [ pkgs.openssl pkgs.zlib pkgs.libffi pkgs.libyaml ];
|
|
};
|
|
}
|