...
This commit is contained in:
parent
66c1566b57
commit
8ae47a991b
6 changed files with 113 additions and 0 deletions
8
.envrc
Normal file
8
.envrc
Normal file
|
@ -0,0 +1,8 @@
|
|||
use_flake() {
|
||||
watch_file flake.nix
|
||||
watch_file default.nix
|
||||
mkdir -p "$(direnv_layout_dir)"
|
||||
. <(nix print-dev-env --profile "$(direnv_layout_dir)/flake-profile")
|
||||
}
|
||||
|
||||
use flake
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
target
|
||||
Cargo.lock
|
||||
.direnv
|
9
Cargo.toml
Normal file
9
Cargo.toml
Normal file
|
@ -0,0 +1,9 @@
|
|||
[package]
|
||||
name = "aoc_24"
|
||||
description = "Advent of Code 2024"
|
||||
authors = ["TheFelidae <https://github.com/TheFelidae>"]
|
||||
license = "Unlicense"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
40
default.nix
Normal file
40
default.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ pkgs ? import <nixpkgs> { }
|
||||
, stdenv ? pkgs.stdenv
|
||||
, lib ? stdenv.lib
|
||||
# A set providing `buildRustPackage :: attrsets -> derivation`
|
||||
, rustPlatform ? pkgs.rustPlatform
|
||||
, fetchFromGitHub ? pkgs.fetchFromGitHub
|
||||
, gitignoreSrc ? null
|
||||
, pkgconfig ? pkgs.pkgconfig
|
||||
, gtk3 ? pkgs.gtk3
|
||||
, glib ? pkgs.glib
|
||||
, gobject-introspection ? pkgs.gobject-introspection
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "aoc24";
|
||||
version = "0.0.1";
|
||||
|
||||
src = gitignoreSource ./.;
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
];
|
||||
nativeBuildInputs = with pkgs; [
|
||||
|
||||
];
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
allowBuiltinFetchGit = true;
|
||||
};
|
||||
|
||||
shellHook = ''
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${builtins.toString (pkgs.lib.makeLibraryPath buildInputs)}";
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "";
|
||||
description = "";
|
||||
license = "Unlicense";
|
||||
};
|
||||
}
|
36
flake.nix
Normal file
36
flake.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
description = "A very basic flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # We want to use packages from the binary cache
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
gitignore = { url = "github:hercules-ci/gitignore.nix"; flake = false; };
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, flake-utils, ... }:
|
||||
flake-utils.lib.eachSystem [ "x86_64-linux" ] (system: let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
gitignoreSrc = pkgs.callPackage inputs.gitignore { };
|
||||
in rec {
|
||||
packages.aoc_24 = pkgs.callPackage ./default.nix { inherit gitignoreSrc; };
|
||||
|
||||
legacyPackages = packages;
|
||||
|
||||
defaultPackage = packages.aoc_24;
|
||||
|
||||
devShell = pkgs.mkShell rec {
|
||||
CARGO_INSTALL_ROOT = "${toString ./.}/.cargo";
|
||||
|
||||
buildInputs = with pkgs; [ cargo rustc git
|
||||
udev
|
||||
alsa-lib vulkan-loader
|
||||
xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr # To use the x11 feature
|
||||
libxkbcommon wayland # To use the wayland feature
|
||||
];
|
||||
nativeBuildInputs = [ pkgs.pkg-config ];
|
||||
env = {
|
||||
LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath buildInputs}";
|
||||
};
|
||||
};
|
||||
});
|
||||
}
|
17
src/main.rs
Normal file
17
src/main.rs
Normal file
|
@ -0,0 +1,17 @@
|
|||
fn main() {
|
||||
// Run the `cargo test` command using Rust - I prefer using tests for this, and reserving src
|
||||
// for the actual code
|
||||
println!("Running tests...");
|
||||
|
||||
let cmd = std::process::Command::new("cargo")
|
||||
.arg("test")
|
||||
.status()
|
||||
.expect("Failed to run tests");
|
||||
|
||||
if !cmd.success() {
|
||||
println!("Tests failed");
|
||||
std::process::exit(1);
|
||||
}
|
||||
|
||||
println!("Tests passed");
|
||||
}
|
Loading…
Add table
Reference in a new issue