Files
Alexander Miroshnichenko 0fd5c71709 fix: resolve code quality issues, add CI, and improve maintainability
- 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)
2026-05-08 06:02:12 +03:00

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;
};
}