- Remove useless nixConfig block (cache.nixos.org is default) - Remove manual container-use override; let blueprint auto-discover it - Add nixosModules.default so README example works - Fix default launcher: use correct parameterized flake URL - Replace deprecated sha256 with hash in goose-cli fetchers - Fix LIBCLANG_PATH to include /lib subdirectory for libclang.so - Drop --release from goose-cli tests (faster, more debug info) - Use builtins.toFile in flake-inputs to avoid ARG_MAX risk - Add lib.warn when overlay has no packages for a system - Add passthru.updateScript to goose-cli, container-use, skillsmcp - Fix skillsmcp version to 0.2.0+unstable (pinned to commit, not tag) - Replace with lib; with explicit references in all meta blocks - Add update.py script for goose-cli (referenced in AGENTS.md) - Expand .gitignore with result-* and .direnv/ - Add GitHub Actions CI workflow (nix flake check + build)
62 lines
1.2 KiB
Nix
62 lines
1.2 KiB
Nix
{
|
|
lib,
|
|
writeShellApplication,
|
|
fzf,
|
|
nix,
|
|
util-linux,
|
|
packageList,
|
|
flakeUrl,
|
|
}:
|
|
|
|
let
|
|
packageListFile = builtins.toFile "millerson-overlay-packages.tsv" packageList;
|
|
in
|
|
writeShellApplication {
|
|
name = "millerson-overlay-launcher";
|
|
|
|
runtimeInputs = [
|
|
fzf
|
|
nix
|
|
util-linux # column
|
|
];
|
|
|
|
text = ''
|
|
# Format for fzf: "name description" (tab-aligned)
|
|
entries=$(column -t -s $'\t' < "${packageListFile}")
|
|
|
|
if [[ -z $entries ]]; then
|
|
echo "No packages found" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Let user pick with fzf
|
|
selected=$(echo "$entries" | fzf \
|
|
--header="Select an pkg to run (ESC to cancel)" \
|
|
--preview-window=hidden \
|
|
--no-multi \
|
|
--height=~40% \
|
|
--layout=reverse) || exit 0
|
|
|
|
# Extract package name (first word)
|
|
pkg_name=$(echo "$selected" | awk '{print $1}')
|
|
|
|
if [[ -z $pkg_name ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
echo "→ Running: nix run ${flakeUrl}#$pkg_name"
|
|
exec nix run "${flakeUrl}#$pkg_name"
|
|
'';
|
|
|
|
meta = {
|
|
description = "Interactive fzf launcher for millerson-overlay.nix packages";
|
|
license = lib.licenses.mit;
|
|
mainProgram = "millerson-overlay-launcher";
|
|
platforms = lib.platforms.all;
|
|
};
|
|
|
|
passthru = {
|
|
hideFromDocs = true;
|
|
};
|
|
}
|