From 6a12b868ad4164f42c8f5cc17c98e3597a4d75ea Mon Sep 17 00:00:00 2001 From: Rutherther Date: Wed, 11 Oct 2023 20:50:10 +0200 Subject: [PATCH] chore: add flake environment --- .envrc | 1 + .gitignore | 2 ++ Cargo.toml | 1 + default.nix | 36 +++++++++++++++++++++++++++++++++++ flake.lock | 48 ++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 143 insertions(+) create mode 100644 .envrc create mode 100644 default.nix create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore index df2ad90..95268ed 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ target/ *.pdb # End of https://www.toptal.com/developers/gitignore/api/rust + +.direnv/ diff --git a/Cargo.toml b/Cargo.toml index 1194807..20ece84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,6 @@ [package] name = "sequence_detector" +description = "CLI that detects sequences of commands based on configuration" version = "0.1.0" edition = "2021" diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..4070bbf --- /dev/null +++ b/default.nix @@ -0,0 +1,36 @@ +{ lib +, naersk +, stdenv +, clangStdenv +, hostPlatform +, targetPlatform +, pkg-config +, rustfmt +, cargo +, rustc +}: + +let + cargoToml = (builtins.fromTOML (builtins.readFile ./Cargo.toml)); +in +naersk.lib."${targetPlatform.system}".buildPackage rec { + src = ./.; + buildInputs = [ + rustfmt + pkg-config + cargo + rustc + ]; + + checkInputs = [ cargo rustc ]; + + doCheck = true; + copyLibs = true; + + meta = { + description = cargoToml.package.description; + homepage = cargoToml.package.homepage; + license = [ lib.licenses.mit ]; + maintainers = []; + }; +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..bfe81fa --- /dev/null +++ b/flake.lock @@ -0,0 +1,48 @@ +{ + "nodes": { + "naersk": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1694081375, + "narHash": "sha256-vzJXOUnmkMCm3xw8yfPP5m8kypQ3BhAIRe4RRCWpzy8=", + "owner": "nmattia", + "repo": "naersk", + "rev": "3f976d822b7b37fc6fb8e6f157c2dd05e7e94e89", + "type": "github" + }, + "original": { + "owner": "nmattia", + "repo": "naersk", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1696757521, + "narHash": "sha256-cfgtLNCBLFx2qOzRLI6DHfqTdfWI+UbvsKYa3b3fvaA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2646b294a146df2781b1ca49092450e8a32814e1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "naersk": "naersk", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..153501a --- /dev/null +++ b/flake.nix @@ -0,0 +1,55 @@ +{ + description = "Detects sequences from CLI"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + naersk = { + url = "github:nmattia/naersk"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { self, naersk, nixpkgs }: let + cargoToml = (builtins.fromTOML (builtins.readFile ./Cargo.toml)); + supportedSystems = ["x86_64-linux"]; + forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f system); + in { + overlay = final: prev: { + "${cargoToml.package.name}" = final.callPackage ./. { inherit naersk; }; + }; + + packages = forAllSystems (system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [ + self.overlay + ]; + }; + in { + "${cargoToml.package.name}" = pkgs."${cargoToml.package.name}"; + }); + + defaultPackage = forAllSystems (system: + self.packages."${system}"."${cargoToml.package.name}" + ); + + devShell = forAllSystems (system: let + pkgs = import nixpkgs { + inherit system; + overlays = [ + self.overlay + ]; + }; + in pkgs.mkShell { + inputsFrom = [ + pkgs."${cargoToml.package.name}" + ]; + + buildInputs = [ + pkgs.rustfmt + pkgs.nixpkgs-fmt + ]; + }); + }; +} -- 2.48.1