A character sheet creator for TTRPGs sheetr.app/
gleam dnd dnd5e atproto
at main 2.5 kB view raw
1{ 2 inputs = { 3 nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; 4 }; 5 6 outputs = {nixpkgs, ...} @ inputs: let 7 lib = nixpkgs.lib; 8 supportedSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"]; 9 forEachSupportedSystem = f: 10 lib.genAttrs supportedSystems (system: 11 f { 12 pkgs = import nixpkgs {inherit system;}; 13 }); 14 in { 15 devShells = forEachSupportedSystem ({pkgs}: { 16 default = pkgs.mkShell { 17 packages = with pkgs; [ 18 gleam 19 beamMinimal28Packages.erlang 20 beamMinimal28Packages.rebar3 21 jq 22 ]; 23 }; 24 }); 25 apps = forEachSupportedSystem ({pkgs}: let 26 cdInto = service: '' 27 rootDir=$(jj --ignore-working-copy root || git rev-parse --show-toplevel) || (echo "error: can't find repo root?"; exit 1) 28 cd "$rootDir/${service}" 29 ''; 30 runtimeInputs = with pkgs; [ 31 jujutsu 32 gleam 33 beamMinimal28Packages.erlang 34 beamMinimal28Packages.rebar3 35 ]; 36 in { 37 # TODO: make default app run both frontend and backend 38 frontend = { 39 type = "app"; 40 program = "${(pkgs.writeShellApplication { 41 inherit runtimeInputs; 42 name = "run-frontend"; 43 text = '' 44 ${cdInto "frontend"} 45 # TODO: dev server proxy thing 46 ${pkgs.gleam}/bin/gleam run -m lustre/dev start 47 ''; 48 })}/bin/run-frontend"; 49 }; 50 backend = { 51 type = "app"; 52 program = "${(pkgs.writeShellApplication { 53 inherit runtimeInputs; 54 name = "run-backend"; 55 text = '' 56 ${cdInto "backend"} 57 ${pkgs.gleam}/bin/gleam run 58 ''; 59 })}/bin/run-backend"; 60 }; 61 lexgen = { 62 type = "app"; 63 program = "${(pkgs.writeShellApplication { 64 inherit runtimeInputs; 65 name = "run-lexgen"; 66 text = '' 67 ${cdInto "shared"} 68 ${pkgs.gleam}/bin/gleam run -m alicia/lexgen -- --dir=${./lexicons} 69 ''; 70 })}/bin/run-lexgen"; 71 }; 72 test = { 73 type = "app"; 74 program = "${(pkgs.writeShellApplication { 75 inherit runtimeInputs; 76 name = "run-tests"; 77 text = '' 78 ${cdInto "alicia/identity"} 79 ${pkgs.gleam}/bin/gleam test 80 ${cdInto ""} 81 ''; 82 })}/bin/run-tests"; 83 }; 84 }); 85 }; 86}