From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755288Ab2HGPqI (ORCPT ); Tue, 7 Aug 2012 11:46:08 -0400 Received: from mail-yx0-f174.google.com ([209.85.213.174]:42778 "EHLO mail-yx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755155Ab2HGPqD (ORCPT ); Tue, 7 Aug 2012 11:46:03 -0400 Date: Tue, 7 Aug 2012 17:45:58 +0200 From: Frederic Weisbecker To: David Ahern Cc: Arnaldo Carvalho de Melo , LKML , Ingo Molnar , Jiri Olsa , Namhyung Kim , Peter Zijlstra , Stephane Eranian Subject: Re: [PATCH 0/2] perf tools: Basic bash completion support Message-ID: <20120807154555.GB12858@somewhere.redhat.com> References: <1344345586-15068-1-git-send-email-fweisbec@gmail.com> <20120807132252.GA12858@somewhere.redhat.com> <502123A4.8040007@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <502123A4.8040007@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 07, 2012 at 08:18:12AM -0600, David Ahern wrote: > On 8/7/12 7:22 AM, Frederic Weisbecker wrote: > >On Tue, Aug 07, 2012 at 03:19:44PM +0200, Frederic Weisbecker wrote: > >>Hey, > >> > >>Basic bash completion support. Only support perf subcommands and most -e basic > >>event descriptor (no grouping). > >> > >>I just have a small issue with tracepoints because of their ":" in the middle. > >>It auto completes as long as we haven't yet reached the semicolon. Otherwise > >>we need to add a double quote in the beginning of the expression. I'm quite > >>a newbie in bash completion though, so I might find a subtelty later to solve > >>this. > > > >Tips: for testing, you need to "make install" and update the bash completion > >scripts: > > > > # make install > > $ . /etc/bash_completion > > > > ANd you need to make sure the PATH hits the updated binary and not > the default other wise you end up with: > > /tmp/pbuild/perf recUnknown option: --list-cmds > > Usage: perf [--version] [--help] COMMAND [ARGS] > Unknown option: --list-cmds > > It's calling /usr/bin/perf with --list-cmds, versus the perf command > I am running (/tmp/pbuild/perf). Any way to teach the completion to > use the perf binary that the user is running? Ah good point. Does the below work for you? I'll respin with that change. diff --git a/tools/perf/bash_completion b/tools/perf/bash_completion index 25f4d99..cba72a9 100644 --- a/tools/perf/bash_completion +++ b/tools/perf/bash_completion @@ -3,18 +3,20 @@ have perf && _perf() { - local cur + local cur cmd COMPREPLY=() _get_comp_words_by_ref cur prev + cmd=${COMP_WORDS[0]} + # List perf subcommands if [ $COMP_CWORD -eq 1 ]; then - cmds=$(perf --list-cmds) + cmds=$($cmd --list-cmds) COMPREPLY=( $( compgen -W '$cmds' -- "$cur" ) ) # List possible events for -e option elif [[ $prev == "-e" && "${COMP_WORDS[1]}" == @(record|stat|top) ]]; then - cmds=$(perf list --raw-dump) + cmds=$($cmd list --raw-dump) COMPREPLY=( $( compgen -W '$cmds' -- $cur ) ) # Fall down to list regular files else