All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Verma, Vishal L" <vishal.l.verma@intel.com>
To: "linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>
Subject: Re: [ndctl PATCH v2] ndctl: make completion smarter wrt mode/type/idle options
Date: Mon, 27 Jun 2016 21:29:18 +0000	[thread overview]
Message-ID: <1467062935.7176.15.camel@intel.com> (raw)
In-Reply-To: <1467062845-24290-1-git-send-email-vishal.l.verma@intel.com>

On Mon, 2016-06-27 at 15:27 -0600, Vishal Verma wrote:
> Add three new 'filters' for mode, type, and idle.
> 
> 'mode' and 'type' work with each other to prevent a blk namespace from
> showing modes like 'dax' or 'memory', or if those modes are specified,
> then limiting 'type' to 'pmem'.
> 
> Also show completions for --map= only if mode is 'memory'.

Oops, this line should've been deleted.. Can you fixup please?

> 
> For idle filtering (typically relevant for 'ndctl list', only show
> idle
> {namespaces, regions} in the completion id a --idle has been specified
> on the command line so far. This makes sense because trying to list an
> idle namespace without --idle (even if you know that is the one you
> want) won't show any output withot --idle.
> 
> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
> ---
> 
> v2: Remove filtering for --map=  (Dan)
> 
>  contrib/ndctl | 27 +++++++++++++++++++++++----
>  1 file changed, 23 insertions(+), 4 deletions(-)
> 
> diff --git a/contrib/ndctl b/contrib/ndctl
> index b7a82fc..160a9dc 100755
> --- a/contrib/ndctl
> +++ b/contrib/ndctl
> @@ -110,6 +110,8 @@ __ndctl_get_regions()
>  {
>  	local opts="--regions $*"
>  	[ -n "$bus_filter" ] && opts="$opts --bus=$bus_filter"
> +	[ -n "$type_filter" ] && opts="$opts --type=$type_filter"
> +	[ -n "$idle_filter" ] && opts="$opts --idle"
>  	echo "$(ndctl list $opts | grep -E "^\s*\"dev\":" | cut -d\"
> -f4)"
>  }
>  
> @@ -118,6 +120,8 @@ __ndctl_get_ns()
>  	opts="--namespaces $*"
>  	[ -n "$bus_filter" ] && opts="$opts --bus=$bus_filter"
>  	[ -n "$reg_filter" ] && opts="$opts --bus=$reg_filter"
> +	[ -n "$type_filter" ] && opts="$opts --type=$type_filter"
> +	[ -n "$idle_filter" ] && opts="$opts --idle"
>  	echo "$(ndctl list $opts | grep -E "^\s*\"dev\":" | cut -d\"
> -f4)"
>  }
>  
> @@ -147,7 +151,7 @@ __ndctl_comp_options()
>  			opts=$(__ndctl_get_dimms)
>  			;;
>  		--namespace)
> -			opts=$(__ndctl_get_ns -i)
> +			opts=$(__ndctl_get_ns)
>  			;;
>  		--reconfig)
>  			# It is ok to reconfig disabled namespaces
> @@ -155,9 +159,15 @@ __ndctl_comp_options()
>  			;;
>  		--type)
>  			opts="pmem blk"
> +			if [[ "$mode_filter" == @(dax|memory) ]];
> then
> +				opts="pmem"
> +			fi
>  			;;
>  		--mode)
>  			opts="raw sector memory dax"
> +			if [[ "$type_filter" == "blk" ]]; then
> +				opts="raw sector"
> +			fi
>  			;;
>  		--map)
>  			opts="mem dev"
> @@ -224,13 +234,13 @@ __ndctl_prev_skip_opts ()
>  	done
>  }
>  
> -bus_filter=''
> -reg_filter=''
> -
>  __ndctl_init_filters()
>  {
>  	bus_filter=''
>  	reg_filter=''
> +	type_filter=''
> +	idle_filter=''
> +	mode_filter=''
>  
>  	for __word in "${words[@]}"; do
>  		if [[ "$__word" =~ --bus=(.*) ]]; then
> @@ -245,6 +255,15 @@ __ndctl_init_filters()
>  			local regions=$(__ndctl_get_regions -i)
>  			[[ "$regions" == *"$reg_filter"* ]] ||
> reg_filter=''
>  		fi
> +		if [[ "$__word" =~ --idle ]]; then
> +			idle_filter="1"
> +		fi
> +		if [[ "$__word" =~ --type=(.*) ]]; then
> +			type_filter="${BASH_REMATCH[1]}"
> +		fi
> +		if [[ "$__word" =~ --mode=(.*) ]]; then
> +			mode_filter="${BASH_REMATCH[1]}"
> +		fi
>  	done
>  }
>  
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

      reply	other threads:[~2016-06-27 21:29 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-27 21:27 [ndctl PATCH v2] ndctl: make completion smarter wrt mode/type/idle options Vishal Verma
2016-06-27 21:29 ` Verma, Vishal L [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1467062935.7176.15.camel@intel.com \
    --to=vishal.l.verma@intel.com \
    --cc=linux-nvdimm@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.