[lxc-devel] [PATCH] lxc-ls: Restore old [filter] behaviour

Stéphane Graber stgraber at ubuntu.com
Thu Jan 28 11:23:37 UTC 2016


On Thu, Jan 28, 2016 at 12:06:00PM +0100, Stéphane Graber wrote:
> On Wed, Jan 20, 2016 at 01:54:45AM +0100, Christian Brauner wrote:
> > In the Python implementation users could pass a regex without a parameter flag
> > as additional argument on the command line. The C implementation gained the
> > flag -r/--regex for this. To not irritate users we restore the old behaviour
> > and additionally rename -r/--regex to --filter to allow eplicitly passing the
> > regex.
> > 
> > Signed-off-by: Christian Brauner <christian.brauner at mailbox.org>
> 
> Hello,
> 
> This doesn't apply to git master right now, can you re-send a version
> which does?
> 
> Thanks!

Hi,

Managed to get that one to behave, the other one still isn't applying though.

> > ---
> >  src/lxc/arguments.h |  2 +-
> >  src/lxc/lxc_ls.c    | 14 ++++++++------
> >  2 files changed, 9 insertions(+), 7 deletions(-)
> > 
> > diff --git a/src/lxc/arguments.h b/src/lxc/arguments.h
> > index a3d2932..46fecbf 100644
> > --- a/src/lxc/arguments.h
> > +++ b/src/lxc/arguments.h
> > @@ -123,7 +123,7 @@ struct lxc_arguments {
> >  	/* lxc-ls */
> >  	char *ls_fancy_format;
> >  	char *ls_groups;
> > -	char *ls_regex;
> > +	char *ls_filter;
> >  	unsigned int ls_nesting; /* maximum allowed nesting level */
> >  	bool ls_active;
> >  	bool ls_fancy;
> > diff --git a/src/lxc/lxc_ls.c b/src/lxc/lxc_ls.c
> > index b270ff1..5bbff1e 100644
> > --- a/src/lxc/lxc_ls.c
> > +++ b/src/lxc/lxc_ls.c
> > @@ -49,6 +49,7 @@ lxc_log_define(lxc_ls, lxc);
> >  #define LS_ACTIVE 3
> >  #define LS_RUNNING 4
> >  #define LS_NESTING 5
> > +#define LS_FILTER 6
> >  
> >  /* Store container info. */
> >  struct ls {
> > @@ -161,7 +162,7 @@ static const struct option my_longopts[] = {
> >  	{"stopped", no_argument, 0, LS_STOPPED},
> >  	{"nesting", optional_argument, 0, LS_NESTING},
> >  	{"groups", required_argument, 0, 'g'},
> > -	{"regex", required_argument, 0, 'r'},
> > +	{"filter", required_argument, 0, LS_FILTER},
> >  	LXC_COMMON_OPTIONS
> >  };
> >  
> > @@ -354,9 +355,10 @@ static int ls_get(struct ls **m, size_t *size, const struct lxc_arguments *args,
> >  		char *name = containers[i];
> >  
> >  		/* Filter container names by regex the user gave us. */
> > -		if (args->ls_regex) {
> > +		if (args->ls_filter || args->argc == 1) {
> >  			regex_t preg;
> > -			check = regcomp(&preg, args->ls_regex, REG_NOSUB | REG_EXTENDED);
> > +			tmp = args->ls_filter ? args->ls_filter : args->argv[0];
> > +			check = regcomp(&preg, tmp, REG_NOSUB | REG_EXTENDED);
> >  			if (check == REG_ESPACE) /* we're out of memory */
> >  				goto out;
> >  			else if (check != 0)
> > @@ -923,8 +925,8 @@ static int my_parser(struct lxc_arguments *args, int c, char *arg)
> >  	case 'g':
> >  		args->groups = arg;
> >  		break;
> > -	case 'r':
> > -		args->ls_regex = arg;
> > +	case LS_FILTER:
> > +		args->ls_filter = arg;
> >  		break;
> >  	case 'F':
> >  		args->ls_fancy_format = arg;
> > @@ -986,7 +988,7 @@ static int ls_remove_lock(const char *path, const char *name,
> >  	}
> >  
> >  	int check = snprintf(*lockpath, *len_lockpath, "%s/lxc/lock/%s/%s", RUNTIME_PATH, path, name);
> > -	if (check < 0 || check >= *len_lockpath)
> > +	if (check < 0 || (size_t)check >= *len_lockpath)
> >  		return -1;
> >  
> >  	lxc_rmdir_onedev(*lockpath, NULL);
> > -- 
> > 2.7.0
> > 
> > _______________________________________________
> > lxc-devel mailing list
> > lxc-devel at lists.linuxcontainers.org
> > http://lists.linuxcontainers.org/listinfo/lxc-devel
> 
> -- 
> Stéphane



> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel


-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20160128/7408f9ef/attachment.sig>


More information about the lxc-devel mailing list