summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHadi Moshayedi <hadi@moshayedi.net>2015-10-31 06:13:33 -0400
committerHadi Moshayedi <hadi@moshayedi.net>2015-10-31 06:13:33 -0400
commitfc135c456d1ba2a39dfb5efe5004102168bef856 (patch)
treec37ce4267fddcb93dafb3648e5ff01edccaf8dcf
parent083b6b040681ec3d8ec3cd40f20406b9e6ec8d56 (diff)
downloadninja-fc135c456d1ba2a39dfb5efe5004102168bef856.tar.gz
Speed-up bash target auto-complete.
These speed-ups include: * Let compgen do the command substitution. Similar to https://lists.gnu.org/archive/html/bug-bash/2012-03/msg00115.html * Use "cut" instead of "awk" for separating fields.
-rw-r--r--misc/bash-completion5
1 files changed, 2 insertions, 3 deletions
diff --git a/misc/bash-completion b/misc/bash-completion
index 0536760..e604cd4 100644
--- a/misc/bash-completion
+++ b/misc/bash-completion
@@ -49,9 +49,8 @@ _ninja_target() {
C) eval dir="$OPTARG" ;;
esac
done;
- targets_command="eval ninja -C \"${dir}\" -t targets all"
- targets=$(${targets_command} 2>/dev/null | awk -F: '{print $1}')
- COMPREPLY=($(compgen -W "$targets" -- "$cur"))
+ targets_command="eval ninja -C \"${dir}\" -t targets all 2>/dev/null | cut -d: -f1"
+ COMPREPLY=($(compgen -W '`${targets_command}`' -- "$cur"))
fi
return
}