/* Some utility commands: - `nix flake update --commit-lock-file` - `nix flake lock update-input ` - `nix build .#dyesub-tool` - `nix run .#dyesub-tool` Updating `cargoHash`: - Set `cargoHash` to an empty string - run `nix run .#dyesub-tool` - Update `cargoHash` with correct hash from output */ { description = "A tool for generating dye sublimation transfer sheet SVGs for Japanese thumb shift 拇指シフト keycaps."; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; rust-overlay.url = "github:oxalica/rust-overlay"; }; outputs = { self, nixpkgs, rust-overlay }: let overlays = [ (import rust-overlay) ]; system = "x86_64-linux"; pkgs = import nixpkgs { inherit system overlays; }; # nightly is required for function signal syntax in leptos # https://leptos-rs.github.io/leptos/02_getting_started.html rust-bin = pkgs.rust-bin.nightly.latest.minimal; rust-binWasm = rust-bin.override { targets = [ "wasm32-unknown-unknown" ]; }; rustPlatform = pkgs.makeRustPlatform { cargo = rust-bin; rustc = rust-bin; }; rustPlatformWasm = pkgs.makeRustPlatform { cargo = rust-binWasm; rustc = rust-binWasm; }; rustSettings = with pkgs; { src = ./.; cargoHash = nixpkgs.lib.fakeHash; }; meta = with nixpkgs.lib; { license = [ licenses.gpl3 ]; platforms = [ system ]; maintainers = with maintainers; [ elnudev ]; }; in { devShells.${system}.default = with pkgs; mkShell { packages = [ (rust-binWasm.override { extensions = [ "rust-src" ]; }) bacon ]; inputsFrom = with self.packages.${system}; [ dyesub-tool dyesub-cli ]; }; packages.${system} = { default = self.packages.${system}.dyesub-cli; dyesub-cli = rustPlatform.buildRustPackage (rustSettings // { pname = "dyesub-cli"; version = "0.1.0"; buildAndTestSubdir = "dyesub-cli"; cargoHash = "sha256-S4GvLg/B/FxjNyrQyBg25OMTgJVVBwPO+Dy/EFM4WoQ="; meta = meta // { description = "A tool for generating dye sublimation transfer sheet SVGs for Japanese thumb shift 拇指シフト keycaps."; }; }); dyesub-tool = rustPlatformWasm.buildRustPackage (rustSettings // { pname = "dyesub-tool"; version = "0.1.0"; buildAndTestSubdir = "dyesub-tool"; buildInputs = with pkgs; [ trunk ]; cargoHash = "sha256-KSBTEBHuWaenIVaKUMDRFToYxcTA/TFwsIG10WNP47g="; meta = meta // { description = "A tool for generating dye sublimation transfer sheet SVGs for Japanese thumb shift 拇指シフト keycaps."; }; }); }; }; }