From: Kevin Locke Date: Thu, 19 Sep 2019 13:27:31 +0000 (-0600) Subject: bash-completion: Standardize fsck/mkfs file/device X-Git-Tag: v2.35-rc1~189^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=559888c873a196c790137bbeee678dc5212c4430;p=thirdparty%2Futil-linux.git bash-completion: Standardize fsck/mkfs file/device Some of the fsck and mkfs commands complete differently than the others, and differently than the desired behavior.[1] Standardize on completing with $(lsblk -pnro name): * fsck: Don't complete completes on all block devices and device links under /dev immediately (which is excessive and prone to search problems). * mkfs, mkfs.bfs: Don't complete "/path/to/file" literally. I assume this was copy/pasted from example code, since it does not appear to be a valid argument unless it is a valid path, which is rare. * fsck.cramfs, mkfs, mkfs.bfs, mkfs.cramfs, mkswap: Don't complete on all filenames initially. The desired behavior is to complete filenames only if there are no canonical matches.[1] Note: A subsequent commit will add the desired fallback behavior. [1]: https://github.com/karelzak/util-linux/issues/842#issuecomment-523450243 Signed-off-by: Kevin Locke --- diff --git a/bash-completion/fsck b/bash-completion/fsck index e5b4f53b4d..301bb5d00e 100644 --- a/bash-completion/fsck +++ b/bash-completion/fsck @@ -32,8 +32,7 @@ _fsck_module() return 0 ;; esac - COMPREPLY=( $(compgen -W "$(find -L /dev/ -path /dev/fd -prune \ - -o -type b -print 2>/dev/null)" -- $cur) ) + COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) ) return 0 } complete -F _fsck_module fsck diff --git a/bash-completion/fsck.cramfs b/bash-completion/fsck.cramfs index d17d2fea7a..c92a6bd466 100644 --- a/bash-completion/fsck.cramfs +++ b/bash-completion/fsck.cramfs @@ -25,9 +25,7 @@ _fsck.cramfs_module() return 0 ;; esac - local IFS=$'\n' - compopt -o filenames - COMPREPLY=( $(compgen -f -- $cur) ) + COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) ) return 0 } complete -F _fsck.cramfs_module fsck.cramfs diff --git a/bash-completion/mkfs b/bash-completion/mkfs index a27874714e..173f7e58b1 100644 --- a/bash-completion/mkfs +++ b/bash-completion/mkfs @@ -21,7 +21,7 @@ _mkfs_module() return 0 ;; esac - COMPREPLY=( $(compgen -W "$(lsblk -pnro name) /path/to/file" -- $cur) ) + COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) ) return 0 } complete -F _mkfs_module mkfs diff --git a/bash-completion/mkfs.bfs b/bash-completion/mkfs.bfs index 75458bb09f..1faeb446b1 100644 --- a/bash-completion/mkfs.bfs +++ b/bash-completion/mkfs.bfs @@ -24,7 +24,7 @@ _mkfs.bfs_module() return 0 ;; esac - COMPREPLY=( $(compgen -W "$(lsblk -pnro name) /path/to/file" -- $cur) ) + COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) ) return 0 } complete -F _mkfs.bfs_module mkfs.bfs diff --git a/bash-completion/mkfs.cramfs b/bash-completion/mkfs.cramfs index af74e1212a..23e1d66f81 100644 --- a/bash-completion/mkfs.cramfs +++ b/bash-completion/mkfs.cramfs @@ -36,9 +36,7 @@ _mkfs.cramfs_module() return 0 ;; esac - local IFS=$'\n' - compopt -o filenames - COMPREPLY=( $(compgen -f -- $cur) ) + COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) ) return 0 } complete -F _mkfs.cramfs_module mkfs.cramfs diff --git a/bash-completion/mkswap b/bash-completion/mkswap index 6ccc214215..ad8b51e66b 100644 --- a/bash-completion/mkswap +++ b/bash-completion/mkswap @@ -32,9 +32,7 @@ _mkswap_module() return 0 ;; esac - local IFS=$'\n' - compopt -o filenames - COMPREPLY=( $(compgen -f -- $cur) ) + COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) ) return 0 } complete -F _mkswap_module mkswap