Skip to contentSkip to conversation

btrfs-progs: completion: Small fixes to make debug simpler

PATCH Applied Qu Wenruo 2 participants 4 messages Aug 13, 2018 – Aug 20, 2018 Btrfs file system

lore
Share & tools
lore

Qu Wenruo

author
#0 lore raw

v2 cover btrfs-progs: completion: Small fixes to make debug simpler

For developer, it's pretty common to use "btrfs check" or "btrfs ins dump-tree" on raw dumps.
Even for end user, they may hit case where they need to run "btrfs check" on raw images.

However "btrfs check" can only complete real block devices, and "btrfs inspect dump-tree" can only complete dir.

Make them to use _filedir() so any filename can be completed and save us developer a little time and nerve hitting that holy tab.

changelog:
v2:
Discard _btrfs_dev() macro completely.

Qu Wenruo (2):
btrfs-progs: completion: Use _filedir() to replace _btrfs_devs()
btrfs-progs: completion: Let dump-tree/dump-super/inode-resolve to
accept any file

 btrfs-completion | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)
Signature · 1 line
2.18.0
author
#1 lore raw

PATCH v2 1/2 btrfs-progs: completion: Use _filedir() to replace _btrfs_devs()

For developers it's pretty common to call "btrfs check" on a raw image dump other than real block device.
It's also possible to end users to do some tests on loop devices.

So current _btrfs_devs() is really making things worse. Use _filedir() to replace _btrfs_devs() so it can complete any filenames, no matter if it's just a file or a real block device.

---
 btrfs-completion | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)
btrfs-completion +5 -12
index ae683f4ecf61..b7628e6984c5 100644
@@ -4,13 +4,6 @@
 # (http://lists.alioth.debian.org/pipermail/bash-completion-devel/2013-June/004868.html)
 # edited by John C F <john.ch.fr at gmail.com> on 2015-02-02
 
-_btrfs_devs()
-{
-	local DEVS
-	DEVS=''; while read dev; do DEVS+="$dev "; done < <(lsblk -pnro name)
-	COMPREPLY+=( $( compgen -W "$DEVS" -- "$cur" ) )
-}
-
 _btrfs_mnts()
 {
 	local MNTS
@@ -68,14 +61,14 @@ _btrfs()
 				opts="$commands_scrub"
 				;;
 			check)
-				_btrfs_devs
+				_filedir
 				return 0
 				;;
 			rescue)
 				opts="$commands_rescue"
 				;;
 			restore)
-				_btrfs_devs
+				_filedir
 				return 0
 				;;
 			inspect-internal)
@@ -120,13 +113,13 @@ _btrfs()
 						;;
 					label)
 						_btrfs_mnts
-						_btrfs_devs
+						_filedir
 						return 0
 						;;
 				esac
 				;;
 			device|rescue)
-				_btrfs_devs
+				_filedir
 				return 0
 				;;
 			inspect-internal)
@@ -156,7 +149,7 @@ _btrfs()
 						return 0
 						;;
 					start)
-						_btrfs_devs
+						_filedir
 						return 0
 						;;
 				esac
Signature · 1 line
2.18.0
author
#2 lore raw

PATCH v2 2/2 btrfs-progs: completion: Let dump-tree/dump-super/inode-resolve to accept any file

In reply to Qu Wenruo

For dump-tree/dump-super the completion uses default filedir -d, which is far from convenient.
Use filedir for dump-tree/dump-super/inode-resolve just like rootid.

---
 btrfs-completion | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
btrfs-completion +1 -1
index b7628e6984c5..6ae57d1b752b 100644
@@ -128,7 +128,7 @@ _btrfs()
 						_btrfs_mnts
 						return 0
 						;;
-					rootid)
+					dump-tree|dump-super|rootid|inode-resolve)
 						_filedir
 						return 0
 						;;
Signature · 1 line
2.18.0
Applied
#3 lore raw
In reply to Qu Wenruo
Quoted 11 lines · Qu Wenruo

For developer, it's pretty common to use "btrfs check" or "btrfs ins dump-tree" on raw dumps.
Even for end user, they may hit case where they need to run "btrfs check" on raw images.

However "btrfs check" can only complete real block devices, and "btrfs inspect dump-tree" can only complete dir.

Make them to use _filedir() so any filename can be completed and save us developer a little time and nerve hitting that holy tab.

Quoted 8 lines

changelog:
v2:
Discard _btrfs_dev() macro completely.

Qu Wenruo (2):
btrfs-progs: completion: Use _filedir() to replace _btrfs_devs()
btrfs-progs: completion: Let dump-tree/dump-super/inode-resolve to
accept any file

Applied, thanks.