#define LS_ACTIVE 3
#define LS_RUNNING 4
#define LS_NESTING 5
+#define LS_FILTER 6
/* Store container info. */
struct ls {
{"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
};
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)
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;
}
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);