From 1d933f1a458c510be9329edaab2b1381e098ac48 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Sun, 23 Aug 2026 18:31:35 +0200 Subject: modules/fish: Init --- modules/by-name/ni/nix-index/command_not_found.zsh | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 modules/by-name/ni/nix-index/command_not_found.zsh (limited to 'modules/by-name/ni/nix-index/command_not_found.zsh') diff --git a/modules/by-name/ni/nix-index/command_not_found.zsh b/modules/by-name/ni/nix-index/command_not_found.zsh new file mode 100644 index 00000000..579f9db4 --- /dev/null +++ b/modules/by-name/ni/nix-index/command_not_found.zsh @@ -0,0 +1,74 @@ +#!/usr/bin/env dash + +# nixos-config - My current NixOS configuration +# +# Copyright (C) 2025 Benedikt Peetz +# SPDX-License-Identifier: GPL-3.0-or-later +# +# This file is part of my nixos-config. +# +# You should have received a copy of the License along with this program. +# If not, see . + +# This was taken from the +# `${pkgs.nix-index}/etc/profile.d/command-not-found.sh` file on 2024-02-28 + +# for bash 4 +# this will be called when a command is entered +# but not found in the user’s path + environment +command_not_found_handle() { + # taken from http://www.linuxjournal.com/content/bash-command-not-found + # - do not run when inside Midnight Commander or within a Pipe + if [ -n "${MC_SID-}" ] || ! [ -t 1 ]; then + >&2 echo "$1: command not found" + return 127 + fi + + toplevel=nixpkgs # nixpkgs should always be available even in NixOS + cmd="$1" + attrs=$(nix-locate --minimal --no-group --type x --type s --whole-name --at-root "/bin/$cmd") + len=$(if [ -n "$attrs" ]; then echo "$attrs" | wc -l; else echo 0; fi) + + case "$len" in + 0) + printf "%s: command not found\n" "$cmd" >&2 + ;; + 1) + # If only one package provides this, then we can invoke it + # without asking the user. + + # These will not return 127 if they worked correctly. + + >&2 cat <&2 cat <&2 cat <