bash-completion: Add fallback for symlinks/images

For commands which support operating on files (i.e. disk images), it is
desirable for bash-completion to complete matching file names.  It is
also desirable to complete on block device symlinks (e.g. under
/dev/disk).  To complete common use cases, often on canonical device
names, continue to try completion using canonical device names, then
fall back to matching any file incrementally as Bash does by default.[1]

[1]: https://github.com/karelzak/util-linux/issues/842#issuecomment-523450243

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
This commit is contained in:
Kevin Locke 2019-09-19 07:40:13 -06:00
parent 559888c873
commit 6ead91ce1e
13 changed files with 14 additions and 0 deletions

View File

@ -23,6 +23,7 @@ _cfdisk_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -91,6 +91,7 @@ _fdisk_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -32,6 +32,7 @@ _fsck_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -25,6 +25,7 @@ _fsck.cramfs_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -10,6 +10,7 @@ _fsck.minix_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -21,6 +21,7 @@ _mkfs_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -24,6 +24,7 @@ _mkfs.bfs_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -36,6 +36,7 @@ _mkfs.cramfs_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -26,6 +26,7 @@ _mkfs.minix_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -32,6 +32,7 @@ _mkswap_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -59,6 +59,7 @@ _partx_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -6,6 +6,7 @@ _sfdisk_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-d'|'--dump'|'-J'|'--json'|'-l'|'--list'|'-F'|'--list-free'|'-r'|'--reorder'|'-s'|'--show-size'|'-V'|'--verify'|'-A'|'--activate'|'--delete')
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -dpnro name)" -- $cur) )
return 0
;;
@ -90,6 +91,7 @@ _sfdisk_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}

View File

@ -54,6 +54,7 @@ _wipefs_module()
return 0
;;
esac
compopt -o bashdefault -o default
COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
return 0
}