Browse Source

adb: improve `adb -s` completion to show helpful info (#7532)

Currently it shows for example the following:

  DEVICE_ID  -- transport_id:2

which doesn't really ease device selection. I've adapted the awk script to print
device name with it's model name, see the example below:

  DEVICE_ID  -- Pixel_3(blueline)
Muhannad Fakhouri 5 years ago
parent
commit
dfd1b4f8df
1 changed files with 7 additions and 2 deletions
  1. 7 2
      plugins/adb/_adb

+ 7 - 2
plugins/adb/_adb

@@ -49,7 +49,12 @@ _arguments \
 case "$state" in
 	specify_device)
 	_values -C 'devices' ${$(adb devices -l|awk 'NR>1&& $1 \
-		{sub(/ +/," ",$0);gsub(":","\\:",$1); printf "%s[%s] ",$1, $NF}'):-""}
+		{sub(/ +/," ",$0); \
+		gsub(":","\\:",$1); \
+		for(i=1;i<=NF;i++) {
+			if($i ~ /model:/) { split($i,m,":") } \
+			else if($i ~ /product:/) { split($i,p,":") } } \
+		printf "%s[%s(%s)] ",$1, p[2], m[2]}'):-""}
 	return
 	;;
 esac
@@ -59,4 +64,4 @@ if (( CURRENT == 1 )); then
 	return
 fi
 
-_files
+_files