{ description = "learning htmx"; inputs.nixpkgs.url = "github:nixos/nixpkgs"; inputs.flake-utils.url = "github:numtide/flake-utils"; # add this line inputs.sbt-derivation.url = "github:zaninime/sbt-derivation"; # recommended for first style of usage documented below, but not necessary inputs.sbt-derivation.inputs.nixpkgs.follows = "nixpkgs"; outputs = { self, nixpkgs, flake-utils, sbt-derivation }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; price-grid = import ./11-single-price-grid-component/default.nix { inherit pkgs sbt-derivation; lib = pkgs.lib; }; order-summary = import ./12-order-summary-component-thymeleaf/default.nix { inherit pkgs sbt-derivation; lib = pkgs.lib; }; testimonials-grid = import ./13-testimonials-grid-section/default.nix { inherit pkgs sbt-derivation; lib = pkgs.lib; }; rock-paper-scissors = import ./14-rock-paper-scissors/default.nix { inherit pkgs sbt-derivation; lib = pkgs.lib; }; multi-step-form = import ./15-multi-step-form/default.nix { inherit pkgs sbt-derivation; lib = pkgs.lib; }; countries-page = import ./16-countries-page-from-api { inherit pkgs sbt-derivation; lib = pkgs.lib; }; results-component-go = import ./17-results-summary-component-go { inherit pkgs; lib = pkgs.lib; }; in { devShells.default = pkgs.mkShell { buildInputs = [ pkgs.scala-cli pkgs.sbt pkgs.scalafmt pkgs.jdk pkgs.nodePackages.tailwindcss pkgs.nodePackages.prettier pkgs.rustywind pkgs.go pkgs.wgo pkgs.semgrep pkgs.gopls ]; shellHook = '' export GOPATH=$PWD/.go export PATH=$GOPATH/bin:$PATH ''; }; packages.price-grid-app = price-grid.package; nixosModules.price-grid-app = price-grid.module; packages.price-grid-app-image = price-grid.image; packages.order-summary = order-summary.package; packages.order-summary-image = order-summary.image; nixosModules.order-summary = order-summary.module; packages.testimonials-grid = testimonials-grid.package; packages.testimonials-grid-image = testimonials-grid.image; nixosModules.testimonials-grid = testimonials-grid.module; packages.rock-paper-scissors = rock-paper-scissors.package; packages.rock-paper-scissors-image = rock-paper-scissors.image; nixosModules.rock-paper-scissors = rock-paper-scissors.module; packages.multi-step-form = multi-step-form.package; packages.multi-step-form-image = multi-step-form.image; nixosModules.multi-step-form = multi-step-form.module; packages.countries-page = countries-page.package; packages.countries-page-image = countries-page.image; packages.results-component-go = results-component-go.package; packages.results-component-go-image = results-component-go.image; }); # see https://serokell.io/blog/practical-nix-flakes }