occasion 0.2.0

Shows one (or many) messages when run during a configured timeframe. Useful to have in your status bar for example.
Documentation
{
  description = "Nix flake for occasion";
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };
  outputs = {
    self,
    nixpkgs,
    flake-utils,
  }:
    flake-utils.lib.eachDefaultSystem (system: let
      pkgs = import nixpkgs {
        inherit system;
      };
      lib = pkgs.lib;
      buildRustPackage = pkgs.rustPackages.rustPlatform.buildRustPackage;
      fetch = {
        rev,
        hash,
      }:
        pkgs.fetchFromGitHub {
          owner = "itscrystalline";
          repo = "occasion";
          rev = rev;
          hash = hash;
        };

      package = source: ver:
        buildRustPackage (finalAttrs: rec {
          pname = "occasion";
          version = ver;

          src = source;

          cargoLock = {
            lockFile = src + "/Cargo.lock";
          };

          meta = {
            description = "A small program to print something / run a command on a specific time/timeframe. ";
            homepage = "https://github.com/itscrystalline/occasion";
            license = lib.licenses.unlicense;
            maintainers = [];
          };
        });
    in rec {
      packages.occasion-latest = package ./. "0.2.0";
      packages.occasion = package (fetch {
        rev = "5808d9283909eb79a18747995539edfac9eba12f";
        hash = "sha256-h5uZ/vht39qPLaSlhfUp20uJgivUsKWOmQLdmj402HU=";
      }) "0.1.0";
      packages.default = packages.occasion;
    })
    // flake-utils.lib.eachDefaultSystemPassThrough (system: {
      homeManagerModule = import ./module.nix {inherit (self.packages.${system}) occasion;};
    });
}