cli: search: implement -r, cleanup of options that don't belong there
This commit is contained in:
parent
4cdb1296a9
commit
8047c16558
@ -7,24 +7,26 @@ int CommandSearch::handle(QStringList arguments)
|
|||||||
{
|
{
|
||||||
QCommandLineParser parser;
|
QCommandLineParser parser;
|
||||||
parser.addOptions({
|
parser.addOptions({
|
||||||
{ { "r", "reverse" }, "Print most-recent changed files first" },
|
{ { "r", "reverse" }, "Print most-recent changed files first. This is short for adding \"sort:(mtime asc)\" to the query." },
|
||||||
{ "pattern", "Only delete files from index matching the pattern, e. g. */.git/*. Only applies to --deleted or standalone.", "pattern" },
|
|
||||||
});
|
});
|
||||||
|
|
||||||
parser.addHelpOption();
|
parser.addHelpOption();
|
||||||
parser.addPositionalArgument("delete", "Delete paths from the index", "delete [paths...]");
|
|
||||||
|
|
||||||
parser.process(arguments);
|
parser.process(arguments);
|
||||||
bool reverse = parser.isSet("reverse");
|
|
||||||
if(reverse)
|
|
||||||
{
|
|
||||||
throw QSSGeneralException("Reverse option to be implemented");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QStringList files = parser.positionalArguments();
|
QStringList files = parser.positionalArguments();
|
||||||
QString queryStrings = files.join(' ');
|
QString queryStrings = files.join(' ');
|
||||||
auto results = dbService->search(QSSQuery::build(queryStrings));
|
QSSQuery query = QSSQuery::build(queryStrings);
|
||||||
|
bool reverse = parser.isSet("reverse");
|
||||||
|
if(reverse)
|
||||||
|
{
|
||||||
|
SortCondition sc;
|
||||||
|
sc.field = FILE_MTIME;
|
||||||
|
sc.order = ASC;
|
||||||
|
query.addSortCondition(sc);
|
||||||
|
}
|
||||||
|
|
||||||
|
auto results = dbService->search(query);
|
||||||
|
|
||||||
for(SearchResult &result : results)
|
for(SearchResult &result : results)
|
||||||
{
|
{
|
||||||
|
@ -24,6 +24,11 @@ QueryType QSSQuery::getQueryType()
|
|||||||
return static_cast<QueryType>(tokensMask & COMBINED);
|
return static_cast<QueryType>(tokensMask & COMBINED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QSSQuery::addSortCondition(SortCondition sc)
|
||||||
|
{
|
||||||
|
this->sortConditions.append(sc);
|
||||||
|
}
|
||||||
|
|
||||||
bool QSSQuery::checkParanthesis(QString expression)
|
bool QSSQuery::checkParanthesis(QString expression)
|
||||||
{
|
{
|
||||||
QStack<QChar> open;
|
QStack<QChar> open;
|
||||||
|
@ -48,6 +48,7 @@ public:
|
|||||||
const QVector<SortCondition> & getSortConditions() const;
|
const QVector<SortCondition> & getSortConditions() const;
|
||||||
QueryType getQueryType();
|
QueryType getQueryType();
|
||||||
int getTokensMask() const { return tokensMask; }
|
int getTokensMask() const { return tokensMask; }
|
||||||
|
void addSortCondition(SortCondition sc);
|
||||||
static bool checkParanthesis(QString query);
|
static bool checkParanthesis(QString query);
|
||||||
static QSSQuery build(QString query);
|
static QSSQuery build(QString query);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user