[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