{ lib , rustPlatform , fetchFromGitHub , pkg-config , installShellFiles , # Add any other dependencies weathr might need here }: rustPlatform.buildRustPackage rec { pname = "weathr"; version = "1.3.0"; # Use the latest version from the repository src = fetchFromGitHub { owner = "veirt"; repo = "weathr"; rev = "v${version}"; # Tags are in the format "v1.3.0" hash = "sha256-JwI5a+O5Nu39Nr0st5yBLTM5kPLC8UIGAoBMqxnOOl4="; # Replace with the actual hash after the first build attempt }; # Use this for the initial build to let Nix tell you the correct hash cargoHash = "sha256-Yj1WxpOLL8GiVpCebPZQgdw+L9g+4CNY7n2z8PJQz4k="; # If the project has a Cargo.lock, buildRustPackage will use it. # If you need to vendor dependencies manually, you can use cargoDeps instead. # cargoDeps = rustPlatform.importCargoLock { # lockFile = ./Cargo.lock; # Not applicable when fetching from GitHub # }; nativeBuildInputs = [ pkg-config installShellFiles ]; # Add any necessary build inputs here. # Based on the repository, it seems like a standard Rust terminal application. # It might not have external C library dependencies, but if it does, add them here. buildInputs = [ # Example: dbus, openssl, etc. ]; # If the project has tests that require network access or other special setup, # you might need to disable them or modify checkFlags. # checkFlags = [ # # Add flags to skip problematic tests if necessary # ]; doCheck = false; postInstall = '' # Install shell completions if the application generates them. # Check if weathr supports a command like `weathr completions bash`. # Based on the README, it doesn't mention shell completion installation. # If it does, you can uncomment and adapt the logic below. # compdir=$(mktemp -d) # $out/bin/weathr completions bash > $compdir/weathr.bash # $out/bin/weathr completions zsh > $compdir/_weathr # $out/bin/weathr completions fish > $compdir/weathr.fish # installShellCompletion --cmd weathr \ # --bash $compdir/weathr.bash \ # --zsh $compdir/_weathr \ # --fish $compdir/weathr.fish ''; meta = with lib; { description = "A terminal weather app with ASCII animations driven by real-time weather data"; homepage = "https://github.com/veirt/weathr"; #changelog = "https://github.com/veirt/weathr/blob/v${version}/CHANGELOG.md"; # Check if a CHANGELOG.md exists license = licenses.gpl3Only; # maintainers = with maintainers; [ ]; # Add your handle if you plan to upstream mainProgram = "weathr"; }; }