refactor: expose all scripts as modules

This commit is contained in:
Swarsel 2024-07-29 17:01:19 +02:00
parent db231d4b83
commit 8f4fe686a5
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
29 changed files with 785 additions and 330 deletions

40
pkgs/cnf/default.nix Normal file
View file

@ -0,0 +1,40 @@
{ writeShellApplication, ncurses, nix-index }:
writeShellApplication {
name = "cnf";
runtimeInputs = [ ncurses nix-index ];
text = ''
command_not_found_handle () {
if [ -n "''${MC_SID-}" ] || ! [ -t 1 ]; then
>&2 echo "$1: command not found"
return 127
fi
echo -n "searching nix-index..."
ATTRS=$(nix-locate --minimal --no-group --type x --type s --top-level --whole-name --at-root "/bin/$1")
case $(echo -n "$ATTRS" | grep -c "^") in
0)
>&2 echo -ne "$(tput el1)\r"
>&2 echo "$1: command not found"
;;
*)
>&2 echo -ne "$(tput el1)\r"
>&2 echo "The program $(tput setaf 4)$1$(tput sgr0) is currently not installed."
>&2 echo "It is provided by the following derivation(s):"
while read -r ATTR; do
ATTR=''${ATTR%.out} # Strip trailing '.out'
>&2 echo " $(tput setaf 12)nixpkgs#$(tput setaf 4)$ATTR$(tput sgr0)"
done <<< "$ATTRS"
esac
return 127
}
command_not_found_handler () {
command_not_found_handle "$@"
return $?
}
'';
}