{ description = "PolyMPR CLI - A tool for managing PolyMPR modules"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; in { packages.pmpr = pkgs.stdenv.mkDerivation { pname = "pmpr"; version = "0.1.0"; src = ./.; nativeBuildInputs = [ pkgs.deno pkgs.autoPatchelfHook ]; buildInputs = [ pkgs.stdenv.cc.cc.lib ]; buildPhase = '' export HOME=$TMPDIR deno cache toolbox/cli.ts deno compile -A --output pmpr toolbox/cli.ts ''; installPhase = '' mkdir -p $out/bin cp pmpr $out/bin/pmpr ''; }; packages.default = self.packages.${system}.pmpr; devShells.default = pkgs.mkShell { nativeBuildInputs = [ pkgs.deno pkgs.patchelf ]; buildInputs = [ pkgs.stdenv.cc.cc.lib ]; shellHook = '' export LD_LIBRARY_PATH="${pkgs.stdenv.cc.cc.lib}/lib:$LD_LIBRARY_PATH" export NIX_LD_INTERPRETER=$(cat ${pkgs.stdenv.cc}/nix-support/dynamic-linker) echo "Welcome to PolyMPR development shell!" echo "Use 'deno task compile' to build the CLI." ''; }; } ); }