# SPDX-FileCopyrightText: 2023 Gustavo Coutinho de Souza # # SPDX-License-Identifier: ISC { craneLib, pkgs, fenixRust, srht-actions, nix-fast-build, }: let default = craneLib.devShell { name = "aba-default"; packages = with pkgs; [ scdoc just reuse git-cliff cargo-edit jq ]; }; # # Needed for: # 1. linting the repo (reuse); # 1. setting up cachix binary caches (cachix); and # 1. publishing new versions of the crate to crates.io (fenixRust.cargo # and fenix.rustc) # 1. running ci jobs (srht-actions, getVersion and nix-fast-build) # ci = pkgs.mkShell { name = "aba-ci"; packages = let getVersion = pkgs.writeShellApplication { name = "get-version"; runtimeInputs = [pkgs.jq fenixRust.cargo fenixRust.rustc]; text = '' cargo metadata --no-deps --format-version=1 \ | jq -r '."packages"[0]."version"' ''; }; in (with pkgs; [reuse cachix]) ++ (with fenixRust; [cargo rustc]) ++ (with srht-actions; [pushToCachix uploadArtifacts genGitTagAndChangelog]) ++ [getVersion nix-fast-build]; }; in { inherit default ci; }