aboutsummaryrefslogtreecommitdiff
path: root/.oh-my-zsh/plugins/command-not-found
diff options
context:
space:
mode:
authorMarvin Borner2019-03-05 01:09:01 +0100
committerMarvin Borner2019-03-05 01:09:01 +0100
commit55457187d18221e76bd12f0fb2cfab65c49b92fb (patch)
tree8db042d2d80710d54100c2709ad4332153ac848a /.oh-my-zsh/plugins/command-not-found
Initial commit
Diffstat (limited to '.oh-my-zsh/plugins/command-not-found')
-rw-r--r--.oh-my-zsh/plugins/command-not-found/README.md31
-rw-r--r--.oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh33
2 files changed, 64 insertions, 0 deletions
diff --git a/.oh-my-zsh/plugins/command-not-found/README.md b/.oh-my-zsh/plugins/command-not-found/README.md
new file mode 100644
index 0000000..df62d1f
--- /dev/null
+++ b/.oh-my-zsh/plugins/command-not-found/README.md
@@ -0,0 +1,31 @@
+# command-not-found plugin
+
+This plugin uses the command-not-found package for zsh to provide suggested packages to be installed if a command cannot be found.
+
+To use it, add `command-not-found` to the plugins array of your zshrc file:
+
+```zsh
+plugins=(... command-not-found)
+```
+
+An example of how this plugin works in Ubuntu:
+```
+$ mutt
+The program 'mutt' can be found in the following packages:
+ * mutt
+ * mutt-kz
+ * mutt-patched
+Try: sudo apt install <selected package>
+```
+
+### Supported platforms
+
+It works out of the box with the command-not-found packages for:
+
+- [Ubuntu](https://www.porcheron.info/command-not-found-for-zsh/)
+- [Debian](https://packages.debian.org/search?keywords=command-not-found)
+- [Arch Linux](https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found)
+- [macOS (Homebrew)](https://github.com/Homebrew/homebrew-command-not-found)
+- [Fedora](https://fedoraproject.org/wiki/Features/PackageKitCommandNotFound)
+
+You can add support for other platforms by submitting a Pull Request.
diff --git a/.oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh b/.oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh
new file mode 100644
index 0000000..ba1262d
--- /dev/null
+++ b/.oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh
@@ -0,0 +1,33 @@
+# Uses the command-not-found package zsh support
+# as seen in https://www.porcheron.info/command-not-found-for-zsh/
+# this is installed in Ubuntu
+
+[[ -e /etc/zsh_command_not_found ]] && source /etc/zsh_command_not_found
+
+# Arch Linux command-not-found support, you must have package pkgfile installed
+# https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook
+[[ -e /usr/share/doc/pkgfile/command-not-found.zsh ]] && source /usr/share/doc/pkgfile/command-not-found.zsh
+
+# Fedora command-not-found support
+if [ -f /usr/libexec/pk-command-not-found ]; then
+ command_not_found_handler () {
+ runcnf=1
+ retval=127
+ [ ! -S /var/run/dbus/system_bus_socket ] && runcnf=0
+ [ ! -x /usr/libexec/packagekitd ] && runcnf=0
+ if [ $runcnf -eq 1 ]
+ then
+ /usr/libexec/pk-command-not-found $@
+ retval=$?
+ fi
+ return $retval
+ }
+fi
+
+# OSX command-not-found support
+# https://github.com/Homebrew/homebrew-command-not-found
+if type brew &> /dev/null; then
+ if brew command command-not-found-init > /dev/null 2>&1; then
+ eval "$(brew command-not-found-init)";
+ fi
+fi