#shellcheck shell=bash

use_pkgs() {
    if ! has nix; then
        # shellcheck disable=2016
        log_error 'use_pkgs: `nix` is not in PATH'
        return 1
    fi

    # Use user-provided default value, or fallback to nixpkgs
    local DEFAULT_FLAKE="${DIRENV_DEFAULT_FLAKE:-nixpkgs}"

    # Allow changing the default flake through a command line switch
    if [ "$1" = "-f" ] || [ "$1" = "--flake" ]; then
        DEFAULT_FLAKE="$2"
        shift 2
    fi


    # Allow specifying a full installable, or just a package name and use the default flake
    local packages=()
    for pkg; do
        if [[ $pkg =~ .*#.* ]]; then
            packages+=("$pkg")
        else
            packages+=("$DEFAULT_FLAKE#$pkg")
        fi
    done

    # shellcheck disable=2154
    direnv_load nix shell "${packages[@]}" --command "$direnv" dump
}