Update shells a bit
This commit is contained in:
parent
1414da9c00
commit
57f21d8d0d
8 changed files with 98 additions and 85 deletions
7
flake.lock
generated
7
flake.lock
generated
|
@ -153,16 +153,15 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1678737103,
|
"lastModified": 1678787322,
|
||||||
"narHash": "sha256-9rUxd1Rx0bEBZb95fCUHnqWQfLgbACoZv0pyOSXuT40=",
|
"narHash": "sha256-aJhChYdaotatK8hK8l12bDelaQvjBuL8QXoStrNN8VM=",
|
||||||
"owner": "chvp",
|
"owner": "chvp",
|
||||||
"repo": "devshell",
|
"repo": "devshell",
|
||||||
"rev": "0168d9deca2cb7e24d58e5356b6dfe3896338d0e",
|
"rev": "ff366c0283ba7b4702fb7ac471a06a4c91aa9b02",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "chvp",
|
"owner": "chvp",
|
||||||
"ref": "background-services",
|
|
||||||
"repo": "devshell",
|
"repo": "devshell",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
devshell = {
|
devshell = {
|
||||||
url = "github:chvp/devshell/background-services";
|
url = "github:chvp/devshell";
|
||||||
inputs = {
|
inputs = {
|
||||||
flake-utils.follows = "flake-utils";
|
flake-utils.follows = "flake-utils";
|
||||||
nixpkgs.follows = "nixpkgs";
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -98,6 +98,7 @@
|
||||||
input = nixpkgs;
|
input = nixpkgs;
|
||||||
patches = builtins.map (patch: ./patches + "/${patch}") (builtins.filter (x: x != ".keep") (builtins.attrNames (builtins.readDir ./patches)));
|
patches = builtins.map (patch: ./patches + "/${patch}") (builtins.filter (x: x != ".keep") (builtins.attrNames (builtins.readDir ./patches)));
|
||||||
overlaysBuilder = _: [
|
overlaysBuilder = _: [
|
||||||
|
agenix.overlays.default
|
||||||
accentor.overlays.default
|
accentor.overlays.default
|
||||||
devshell.overlays.default
|
devshell.overlays.default
|
||||||
emacs-overlay.overlay
|
emacs-overlay.overlay
|
||||||
|
|
|
@ -30,15 +30,22 @@ pkgs.devshell.mkShell {
|
||||||
yarn
|
yarn
|
||||||
];
|
];
|
||||||
env = [
|
env = [
|
||||||
{ name = "CC"; value = "cc"; }
|
|
||||||
{ name = "CPP"; value = "cpp"; }
|
|
||||||
{ name = "CXX"; value = "c++"; }
|
|
||||||
{ 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 = "GEM_HOME"; eval = "$PRJ_DATA_DIR/bundle/$(ruby -e 'puts RUBY_VERSION')"; }
|
||||||
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
|
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
|
||||||
];
|
];
|
||||||
commands = [
|
commands = [
|
||||||
|
{
|
||||||
|
name = "refresh-deps";
|
||||||
|
category = "general commands";
|
||||||
|
help = "Install dependencies";
|
||||||
|
command = ''
|
||||||
|
yarn install
|
||||||
|
bundle install
|
||||||
|
bundle pristine
|
||||||
|
'';
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "memcached";
|
name = "memcached";
|
||||||
category = "general commands";
|
category = "general commands";
|
||||||
|
|
|
@ -1,24 +1,23 @@
|
||||||
{ 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/c.nix" ];
|
||||||
packages = with pkgs; [
|
|
||||||
(pkgs.lowPrio binutils)
|
|
||||||
findutils
|
|
||||||
cmake
|
|
||||||
gnumake
|
|
||||||
nodejs
|
|
||||||
postgresql_14
|
|
||||||
ruby_3_1
|
|
||||||
yarn
|
|
||||||
];
|
|
||||||
env = [
|
env = [
|
||||||
{ name = "NIX_CC"; value = "${pkgs.gcc}"; }
|
|
||||||
{ name = "PGDATA"; eval = "$PRJ_DATA_DIR/postgres"; }
|
|
||||||
{ name = "DATABASE_HOST"; eval = "$PGDATA"; }
|
{ name = "DATABASE_HOST"; eval = "$PGDATA"; }
|
||||||
{ name = "GEM_HOME"; eval = "$PRJ_DATA_DIR/bundle/$(ruby -e 'puts RUBY_VERSION')"; }
|
{ name = "GEM_HOME"; eval = "$PRJ_DATA_DIR/bundle/$(ruby -e 'puts RUBY_VERSION')"; }
|
||||||
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
|
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
|
||||||
|
{ name = "PGDATA"; eval = "$PRJ_DATA_DIR/postgres"; }
|
||||||
];
|
];
|
||||||
commands = [
|
commands = [
|
||||||
|
{
|
||||||
|
name = "refresh-deps";
|
||||||
|
category = "general commands";
|
||||||
|
help = "Install dependencies";
|
||||||
|
command = ''
|
||||||
|
yarn install
|
||||||
|
bundle install
|
||||||
|
bundle pristine
|
||||||
|
'';
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "pg:setup";
|
name = "pg:setup";
|
||||||
category = "database";
|
category = "database";
|
||||||
|
@ -36,15 +35,7 @@
|
||||||
help = "Start postgres instance";
|
help = "Start postgres instance";
|
||||||
command = ''
|
command = ''
|
||||||
[ ! -d $PGDATA ] && pg:setup
|
[ ! -d $PGDATA ] && pg:setup
|
||||||
pg_ctl -D $PGDATA -U postgres start -l log/postgres.log
|
postgres
|
||||||
'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "pg:stop";
|
|
||||||
category = "database";
|
|
||||||
help = "Stop postgres instance";
|
|
||||||
command = ''
|
|
||||||
pg_ctl -D $PGDATA -U postgres stop
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -52,10 +43,24 @@
|
||||||
category = "database";
|
category = "database";
|
||||||
help = "Open database console";
|
help = "Open database console";
|
||||||
command = ''
|
command = ''
|
||||||
psql --host $PGDATA -U postgres
|
psql --host $PGDATA s
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
packages = with pkgs; [
|
||||||
|
(pkgs.lowPrio binutils)
|
||||||
|
findutils
|
||||||
|
cmake
|
||||||
|
gnumake
|
||||||
|
nodejs
|
||||||
|
postgresql_14
|
||||||
|
ruby_3_1
|
||||||
|
yarn
|
||||||
|
];
|
||||||
|
serviceGroups.server.services = {
|
||||||
|
web.command = "rails s -p 3000";
|
||||||
|
postgres.command = "pg:start";
|
||||||
|
};
|
||||||
language.c = {
|
language.c = {
|
||||||
compiler = pkgs.gcc;
|
compiler = pkgs.gcc;
|
||||||
includes = [ pkgs.zlib pkgs.openssl ];
|
includes = [ pkgs.zlib pkgs.openssl ];
|
||||||
|
|
|
@ -1,10 +1,23 @@
|
||||||
{ pkgs, inputs }: pkgs.devshell.mkShell {
|
{ pkgs, inputs }: pkgs.devshell.mkShell {
|
||||||
name = "NixOS config";
|
name = "NixOS config";
|
||||||
|
commands = [
|
||||||
|
{
|
||||||
|
name = "format-all";
|
||||||
|
category = "general commands";
|
||||||
|
help = "Format all nix files in the project";
|
||||||
|
command = "find $PRJ_ROOT -type f -name '*.nix' -print0 | xargs -0 nixpkgs-fmt";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "fetchpatch";
|
||||||
|
category = "general commands";
|
||||||
|
help = "Fetch a patch from a nixpkgs PR by its ID";
|
||||||
|
command = "curl -L https://github.com/NixOS/nixpkgs/pull/$1.patch -o $PRJ_ROOT/patches/$1.patch";
|
||||||
|
}
|
||||||
|
];
|
||||||
packages = [
|
packages = [
|
||||||
|
pkgs.agenix
|
||||||
# Use nixos-rebuild from flake, since it might be patched
|
# Use nixos-rebuild from flake, since it might be patched
|
||||||
pkgs.nixos-rebuild
|
pkgs.nixos-rebuild
|
||||||
pkgs.nixpkgs-fmt
|
pkgs.nixpkgs-fmt
|
||||||
(pkgs.writeShellScriptBin "fetchpatch" "curl -L https://github.com/NixOS/nixpkgs/pull/$1.patch -o patches/$1.patch")
|
|
||||||
inputs.agenix.packages.${pkgs.system}.default
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
{ pkgs, ... }: pkgs.devshell.mkShell {
|
|
||||||
name = "Scriptingtalen project";
|
|
||||||
packages = with pkgs; [ (python3.withPackages (ps: with ps; [ beautifulsoup4 requests ])) ];
|
|
||||||
}
|
|
|
@ -1,6 +1,27 @@
|
||||||
{ 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/c.nix" ];
|
||||||
|
commands = [
|
||||||
|
{
|
||||||
|
name = "refresh-deps";
|
||||||
|
category = "general commands";
|
||||||
|
help = "Install dependencies";
|
||||||
|
command = ''
|
||||||
|
yarn install
|
||||||
|
bundle install
|
||||||
|
bundle pristine
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
env = [
|
||||||
|
{ name = "GEM_HOME"; eval = "$PRJ_DATA_DIR/bundle/$(ruby -e 'puts RUBY_VERSION')"; }
|
||||||
|
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
|
||||||
|
];
|
||||||
|
serviceGroups.server.services = {
|
||||||
|
web.command = "rails s -p 3000";
|
||||||
|
js.command = "yarn build:dev --watch";
|
||||||
|
css.command = "yarn build:css --watch";
|
||||||
|
};
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
(pkgs.lowPrio binutils)
|
(pkgs.lowPrio binutils)
|
||||||
findutils
|
findutils
|
||||||
|
@ -9,29 +30,6 @@
|
||||||
nodejs
|
nodejs
|
||||||
yarn
|
yarn
|
||||||
];
|
];
|
||||||
env = [
|
|
||||||
{ name = "GEM_HOME"; eval = "$PRJ_DATA_DIR/bundle/$(ruby -e 'puts RUBY_VERSION')"; }
|
|
||||||
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
|
|
||||||
];
|
|
||||||
commands = [
|
|
||||||
{
|
|
||||||
name = "server-support";
|
|
||||||
category = "general commands";
|
|
||||||
help = "Run everything required for a server";
|
|
||||||
command = ''
|
|
||||||
bundle install
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "server";
|
|
||||||
category = "general commands";
|
|
||||||
help = "Run everything";
|
|
||||||
command = ''
|
|
||||||
server-support
|
|
||||||
rails s
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
language.c = {
|
language.c = {
|
||||||
compiler = pkgs.gcc;
|
compiler = pkgs.gcc;
|
||||||
includes = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ];
|
includes = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ];
|
||||||
|
|
|
@ -1,6 +1,22 @@
|
||||||
{ 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/c.nix" ];
|
||||||
|
commands = [
|
||||||
|
{
|
||||||
|
name = "refresh-deps";
|
||||||
|
category = "general commands";
|
||||||
|
help = "Install dependencies";
|
||||||
|
command = ''
|
||||||
|
yarn install
|
||||||
|
bundle install
|
||||||
|
bundle pristine
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
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)
|
(pkgs.lowPrio binutils)
|
||||||
imagemagick
|
imagemagick
|
||||||
|
@ -11,32 +27,10 @@
|
||||||
nodejs
|
nodejs
|
||||||
yarn
|
yarn
|
||||||
];
|
];
|
||||||
env = [
|
serviceGroups.server.services.rails = {
|
||||||
{ name = "CC"; value = "cc"; }
|
|
||||||
{ name = "CPP"; value = "cpp"; }
|
|
||||||
{ name = "CXX"; value = "c++"; }
|
|
||||||
{ name = "GEM_HOME"; eval = "$PRJ_DATA_DIR/bundle/$(ruby -e 'puts RUBY_VERSION')"; }
|
|
||||||
{ name = "PATH"; prefix = "$GEM_HOME/bin"; }
|
|
||||||
];
|
|
||||||
commands = [
|
|
||||||
{
|
|
||||||
name = "server-support";
|
|
||||||
category = "general commands";
|
|
||||||
help = "Run everything required for a server";
|
|
||||||
command = ''
|
|
||||||
bundle install
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "server";
|
name = "server";
|
||||||
category = "general commands";
|
command = "rails s -p 3000";
|
||||||
help = "Run everything";
|
};
|
||||||
command = ''
|
|
||||||
server-support
|
|
||||||
rails s
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
language.c = {
|
language.c = {
|
||||||
compiler = pkgs.gcc;
|
compiler = pkgs.gcc;
|
||||||
includes = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ];
|
includes = [ pkgs.sqlite pkgs.libmysqlclient pkgs.zlib ];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue