mirror of
				https://github.com/lelgenio/maildir-notify-daemon.git
				synced 2025-10-30 22:10:15 -03:00 
			
		
		
		
	Build the project with nix
This commit is contained in:
		
							parent
							
								
									e4d7cbee89
								
							
						
					
					
						commit
						f609cbd6dd
					
				
					 6 changed files with 982 additions and 344 deletions
				
			
		
							
								
								
									
										1
									
								
								.envrc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.envrc
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| use_flake | ||||
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -1 +1,2 @@ | |||
| /target | ||||
| .direnv/ | ||||
|  |  | |||
							
								
								
									
										1032
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										1032
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -6,8 +6,8 @@ edition = "2021" | |||
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||
| 
 | ||||
| [dependencies] | ||||
| hotwatch = "0.4.6" | ||||
| mailparse = "0.13.8" | ||||
| notify-rust = "4.5.6" | ||||
| hotwatch = "0.4" | ||||
| mailparse = "0.13" | ||||
| notify-rust = "4.8" | ||||
| 
 | ||||
| [features] | ||||
|  |  | |||
							
								
								
									
										176
									
								
								flake.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										176
									
								
								flake.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,176 @@ | |||
| { | ||||
|   "nodes": { | ||||
|     "advisory-db": { | ||||
|       "flake": false, | ||||
|       "locked": { | ||||
|         "lastModified": 1683272394, | ||||
|         "narHash": "sha256-4XQZbSZ8XYAeASpr0Er8mNPnjbYLJwvaB+VyH+bt6DE=", | ||||
|         "owner": "rustsec", | ||||
|         "repo": "advisory-db", | ||||
|         "rev": "50bed3ba4066e6255dab434dc845e7f655812ce1", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "rustsec", | ||||
|         "repo": "advisory-db", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "crane": { | ||||
|       "inputs": { | ||||
|         "flake-compat": "flake-compat", | ||||
|         "flake-utils": "flake-utils", | ||||
|         "nixpkgs": [ | ||||
|           "nixpkgs" | ||||
|         ], | ||||
|         "rust-overlay": "rust-overlay" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1683505101, | ||||
|         "narHash": "sha256-VBU64Jfu2V4sUR5+tuQS9erBRAe/QEYUxdVMcJGMZZs=", | ||||
|         "owner": "ipetkov", | ||||
|         "repo": "crane", | ||||
|         "rev": "7b5bd9e5acb2bb0cfba2d65f34d8568a894cdb6c", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "ipetkov", | ||||
|         "repo": "crane", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-compat": { | ||||
|       "flake": false, | ||||
|       "locked": { | ||||
|         "lastModified": 1673956053, | ||||
|         "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", | ||||
|         "owner": "edolstra", | ||||
|         "repo": "flake-compat", | ||||
|         "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "edolstra", | ||||
|         "repo": "flake-compat", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils": { | ||||
|       "inputs": { | ||||
|         "systems": "systems" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1681202837, | ||||
|         "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "cfacdce06f30d2b68473a46042957675eebb3401", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "flake-utils_2": { | ||||
|       "inputs": { | ||||
|         "systems": "systems_2" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1681202837, | ||||
|         "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "cfacdce06f30d2b68473a46042957675eebb3401", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1683777345, | ||||
|         "narHash": "sha256-V2p/A4RpEGqEZussOnHYMU6XglxBJGCODdzoyvcwig8=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "635a306fc8ede2e34cb3dd0d6d0a5d49362150ed", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixpkgs-unstable", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "root": { | ||||
|       "inputs": { | ||||
|         "advisory-db": "advisory-db", | ||||
|         "crane": "crane", | ||||
|         "flake-utils": "flake-utils_2", | ||||
|         "nixpkgs": "nixpkgs" | ||||
|       } | ||||
|     }, | ||||
|     "rust-overlay": { | ||||
|       "inputs": { | ||||
|         "flake-utils": [ | ||||
|           "crane", | ||||
|           "flake-utils" | ||||
|         ], | ||||
|         "nixpkgs": [ | ||||
|           "crane", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1683080331, | ||||
|         "narHash": "sha256-nGDvJ1DAxZIwdn6ww8IFwzoHb2rqBP4wv/65Wt5vflk=", | ||||
|         "owner": "oxalica", | ||||
|         "repo": "rust-overlay", | ||||
|         "rev": "d59c3fa0cba8336e115b376c2d9e91053aa59e56", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "oxalica", | ||||
|         "repo": "rust-overlay", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "systems": { | ||||
|       "locked": { | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "systems_2": { | ||||
|       "locked": { | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "type": "github" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "root": "root", | ||||
|   "version": 7 | ||||
| } | ||||
							
								
								
									
										110
									
								
								flake.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								flake.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,110 @@ | |||
| { | ||||
|   description = "Build a cargo project"; | ||||
| 
 | ||||
|   inputs = { | ||||
|     nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; | ||||
| 
 | ||||
|     crane = { | ||||
|       url = "github:ipetkov/crane"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
| 
 | ||||
|     flake-utils.url = "github:numtide/flake-utils"; | ||||
| 
 | ||||
|     advisory-db = { | ||||
|       url = "github:rustsec/advisory-db"; | ||||
|       flake = false; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   outputs = { self, nixpkgs, crane, flake-utils, advisory-db, ... }: | ||||
|     flake-utils.lib.eachDefaultSystem (system: | ||||
|       let | ||||
|         pkgs = import nixpkgs { | ||||
|           inherit system; | ||||
|         }; | ||||
| 
 | ||||
|         inherit (pkgs) lib; | ||||
| 
 | ||||
|         craneLib = crane.lib.${system}; | ||||
|         src = craneLib.cleanCargoSource ./.; | ||||
| 
 | ||||
|         buildInputs = [ | ||||
|           # Add additional build inputs here | ||||
|         ]; | ||||
| 
 | ||||
|         # Build *just* the cargo dependencies, so we can reuse | ||||
|         # all of that work (e.g. via cachix) when running in CI | ||||
|         cargoArtifacts = craneLib.buildDepsOnly { | ||||
|           inherit src buildInputs; | ||||
|         }; | ||||
| 
 | ||||
|         # Build the actual crate itself, reusing the dependency | ||||
|         # artifacts from above. | ||||
|         my-crate = craneLib.buildPackage { | ||||
|           inherit cargoArtifacts src buildInputs; | ||||
|         }; | ||||
|       in | ||||
|       { | ||||
|         checks = { | ||||
|           # Build the crate as part of `nix flake check` for convenience | ||||
|           inherit my-crate; | ||||
| 
 | ||||
|           # Run clippy (and deny all warnings) on the crate source, | ||||
|           # again, resuing the dependency artifacts from above. | ||||
|           # | ||||
|           # Note that this is done as a separate derivation so that | ||||
|           # we can block the CI if there are issues here, but not | ||||
|           # prevent downstream consumers from building our crate by itself. | ||||
|           my-crate-clippy = craneLib.cargoClippy { | ||||
|             inherit cargoArtifacts src buildInputs; | ||||
|             cargoClippyExtraArgs = "--all-targets -- --deny warnings"; | ||||
|           }; | ||||
| 
 | ||||
|           my-crate-doc = craneLib.cargoDoc { | ||||
|             inherit cargoArtifacts src buildInputs; | ||||
|           }; | ||||
| 
 | ||||
|           # Check formatting | ||||
|           my-crate-fmt = craneLib.cargoFmt { | ||||
|             inherit src; | ||||
|           }; | ||||
| 
 | ||||
|           # Audit dependencies | ||||
|           my-crate-audit = craneLib.cargoAudit { | ||||
|             inherit src advisory-db; | ||||
|           }; | ||||
| 
 | ||||
|           # Run tests with cargo-nextest | ||||
|           # Consider setting `doCheck = false` on `my-crate` if you do not want | ||||
|           # the tests to run twice | ||||
|           my-crate-nextest = craneLib.cargoNextest { | ||||
|             inherit cargoArtifacts src buildInputs; | ||||
|             partitions = 1; | ||||
|             partitionType = "count"; | ||||
|           }; | ||||
|         } // lib.optionalAttrs (system == "x86_64-linux") { | ||||
|           # NB: cargo-tarpaulin only supports x86_64 systems | ||||
|           # Check code coverage (note: this will not upload coverage anywhere) | ||||
|           my-crate-coverage = craneLib.cargoTarpaulin { | ||||
|             inherit cargoArtifacts src; | ||||
|           }; | ||||
|         }; | ||||
| 
 | ||||
|         packages.default = my-crate; | ||||
| 
 | ||||
|         apps.default = flake-utils.lib.mkApp { | ||||
|           drv = my-crate; | ||||
|         }; | ||||
| 
 | ||||
|         devShells.default = pkgs.mkShell { | ||||
|           inputsFrom = builtins.attrValues self.checks; | ||||
| 
 | ||||
|           # Extra inputs can be added here | ||||
|           nativeBuildInputs = with pkgs; [ | ||||
|             cargo | ||||
|             rustc | ||||
|           ]; | ||||
|         }; | ||||
|       }); | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue