CLI: -l, -L, -t should match names with re patterns in them

This commit is contained in:
Doug Blank 2016-05-03 13:04:24 -04:00
parent 8350859c0c
commit 8a6d766b06
2 changed files with 16 additions and 10 deletions

View File

@ -398,8 +398,10 @@ class ArgHandler(object):
for name, dirname in sorted(self.dbman.family_tree_list(),
key=lambda pair: pair[0].lower()):
if (self.database_names is None or
any([re.match("^" + dbname + "$", name) for dbname in self.database_names])):
if (self.database_names is None or
any([(re.match("^" + dbname + "$", name) or
dbname == name)
for dbname in self.database_names])):
print(_("%(full_DB_path)s with name \"%(f_t_name)s\"")
% {'full_DB_path' : dirname, 'f_t_name' : name})
return

View File

@ -182,8 +182,10 @@ class CLIDbManager(object):
for item in self.current_names:
(name, dirpath, path_name, last,
tval, enable, stock_id, backend_type, version) = item
if (database_names is None or
any([re.match("^" + dbname + "$", name) for dbname in database_names])):
if (database_names is None or
any([(re.match("^" + dbname + "$", name) or
dbname == name)
for dbname in database_names])):
summary = self.get_dbdir_summary(dirpath, name)
print(_("Family Tree \"%s\":") % summary[_("Family Tree")])
for item in sorted(summary):
@ -202,8 +204,10 @@ class CLIDbManager(object):
for item in self.current_names:
(name, dirpath, path_name, last,
tval, enable, stock_id, backend_type, version) = item
if (database_names is None or
any([re.match("^" + dbname + "$", name) for dbname in database_names])):
if (database_names is None or
any([(re.match("^" + dbname + "$", name) or
dbname == name)
for dbname in database_names])):
retval = self.get_dbdir_summary(dirpath, name)
summary_list.append( retval )
return summary_list
@ -243,7 +247,7 @@ class CLIDbManager(object):
if (stock_id == 'gramps-lock'):
last = find_locker_name(dirpath)
self.current_names.append(
(name, os.path.join(dbdir, dpath), path_name,
last, tval, enable, stock_id, backend_type, version))
@ -398,7 +402,7 @@ class CLIDbManager(object):
def remove_database(self, dbname, user=None):
"""
Deletes a database folder given a pattenr that matches
Deletes a database folder given a pattenr that matches
its proper name.
"""
dbdir = os.path.expanduser(config.get('behavior.database-path'))
@ -409,10 +413,10 @@ class CLIDbManager(object):
if os.path.isfile(path_name):
with open(path_name, 'r', encoding='utf8') as file:
name = file.readline().strip()
if re.match("^" + dbname + "$", name):
if re.match("^" + dbname + "$", name) or dbname == name:
match_list.append((name, dirpath))
if len(match_list) == 0:
CLIDbManager.ERROR("Family tree not found",
CLIDbManager.ERROR("Family tree not found",
"No matching family tree found: '%s'" % dbname)
# now delete them:
for (name, directory) in match_list: