Basic Nix+Rust setup
This commit is contained in:
		
						commit
						1b4db04895
					
				| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					[ -e ".devenv" ] || rm -rf .devenv
 | 
				
			||||||
 | 
					[ -L ".devenv" ] || (mkdir -p "$HOME/.cache/devenv$PWD"  && ln -s "$HOME/.cache/devenv$PWD" .devenv)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
 | 
				
			||||||
 | 
					  source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					watch_file flake.nix
 | 
				
			||||||
 | 
					watch_file flake.lock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ! use flake . --impure
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					  echo "devenv could not be built. The devenv environment was not loaded. Make the necessary changes to devenv.nix and hit enter to try again." >&2
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					# Created by https://www.toptal.com/developers/gitignore/api/rust
 | 
				
			||||||
 | 
					# Edit at https://www.toptal.com/developers/gitignore?templates=rust
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Rust ###
 | 
				
			||||||
 | 
					# Generated by Cargo
 | 
				
			||||||
 | 
					# will have compiled files and executables
 | 
				
			||||||
 | 
					debug/
 | 
				
			||||||
 | 
					target/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# These are backup files generated by rustfmt
 | 
				
			||||||
 | 
					**/*.rs.bk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# MSVC Windows builds of rustc generate these, which store debugging information
 | 
				
			||||||
 | 
					*.pdb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# End of https://www.toptal.com/developers/gitignore/api/rust
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.devenv
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					# This file is automatically @generated by Cargo.
 | 
				
			||||||
 | 
					# It is not intended for manual editing.
 | 
				
			||||||
 | 
					version = 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "work-timer"
 | 
				
			||||||
 | 
					version = "0.1.0"
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					[package]
 | 
				
			||||||
 | 
					name = "work-timer"
 | 
				
			||||||
 | 
					version = "0.1.0"
 | 
				
			||||||
 | 
					edition = "2021"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[dependencies]
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,48 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "nodes": {
 | 
				
			||||||
 | 
					    "flake-parts": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "nixpkgs-lib": [
 | 
				
			||||||
 | 
					          "nixpkgs"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1727826117,
 | 
				
			||||||
 | 
					        "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
 | 
				
			||||||
 | 
					        "owner": "hercules-ci",
 | 
				
			||||||
 | 
					        "repo": "flake-parts",
 | 
				
			||||||
 | 
					        "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "hercules-ci",
 | 
				
			||||||
 | 
					        "repo": "flake-parts",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "nixpkgs": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1730200266,
 | 
				
			||||||
 | 
					        "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
 | 
				
			||||||
 | 
					        "owner": "NixOS",
 | 
				
			||||||
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
 | 
					        "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "NixOS",
 | 
				
			||||||
 | 
					        "ref": "nixos-unstable",
 | 
				
			||||||
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "root": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "flake-parts": "flake-parts",
 | 
				
			||||||
 | 
					        "nixpkgs": "nixpkgs"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "root": "root",
 | 
				
			||||||
 | 
					  "version": 7
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,33 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    description = "Generic Rust Flake";
 | 
				
			||||||
 | 
					    inputs = {
 | 
				
			||||||
 | 
					        nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
 | 
				
			||||||
 | 
					        flake-parts = {
 | 
				
			||||||
 | 
					            url = "github:hercules-ci/flake-parts";
 | 
				
			||||||
 | 
					            inputs.nixpkgs-lib.follows = "nixpkgs";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    outputs = inputs @ {flake-parts, ...}:
 | 
				
			||||||
 | 
					        flake-parts.lib.mkFlake {inherit inputs;} {
 | 
				
			||||||
 | 
					            systems = ["x86_64-linux" "aarch64-linux"];
 | 
				
			||||||
 | 
					            perSystem = {
 | 
				
			||||||
 | 
					                pkgs,
 | 
				
			||||||
 | 
					                ...
 | 
				
			||||||
 | 
					            }: let
 | 
				
			||||||
 | 
					            app = pkgs.rustPlatform.buildRustPackage {
 | 
				
			||||||
 | 
					                pname = "work-timer";
 | 
				
			||||||
 | 
					                version = "0.1.0";
 | 
				
			||||||
 | 
					                cargoLock = {
 | 
				
			||||||
 | 
					                    lockFile = ./Cargo.lock;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					                src = ./.;
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					            in {
 | 
				
			||||||
 | 
					                packages = {
 | 
				
			||||||
 | 
					                    default = app;
 | 
				
			||||||
 | 
					                    inherit app;
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					fn main() {
 | 
				
			||||||
 | 
					    println!("Hello, world!");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue