aboutsummaryrefslogtreecommitdiffstats
path: root/src/ruleparser.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago@cassini.local.lan>2007-12-24 19:36:19 -0200
committerThiago Macieira <thiago@cassini.local.lan>2007-12-24 19:36:19 -0200
commit898704e4260e2d42c75e123938470dab581a8d80 (patch)
tree7679312d38072d3c0a39f547c2268059cb782f81 /src/ruleparser.cpp
parent7a6160e7c284f7963399265544cfacd323c8db65 (diff)
downloadsvn2git-898704e4260e2d42c75e123938470dab581a8d80.tar
svn2git-898704e4260e2d42c75e123938470dab581a8d80.tar.gz
svn2git-898704e4260e2d42c75e123938470dab581a8d80.tar.bz2
svn2git-898704e4260e2d42c75e123938470dab581a8d80.tar.xz
svn2git-898704e4260e2d42c75e123938470dab581a8d80.zip
Refactor and add the ability to recurse into certain subdirs
Diffstat (limited to 'src/ruleparser.cpp')
-rw-r--r--src/ruleparser.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/ruleparser.cpp b/src/ruleparser.cpp
index e9a1192..b17bb96 100644
--- a/src/ruleparser.cpp
+++ b/src/ruleparser.cpp
@@ -51,6 +51,7 @@ void Rules::load()
QRegExp repoBranchLine("branch\\s+(\\S+)", Qt::CaseInsensitive);
QRegExp matchLine("match\\s+(.*)", Qt::CaseInsensitive);
+ QRegExp matchActionLine("action\\s+(\\w+)", Qt::CaseInsensitive);
QRegExp matchRepoLine("repository\\s+(\\S+)", Qt::CaseInsensitive);
QRegExp matchBranchLine("branch\\s+(\\S+)", Qt::CaseInsensitive);
QRegExp matchRevLine("(min|max) revision (\\d+)", Qt::CaseInsensitive);
@@ -97,7 +98,20 @@ void Rules::load()
else // must be max
match.maxRevision = matchRevLine.cap(2).toInt();
continue;
+ } else if (matchActionLine.exactMatch(line)) {
+ QString action = matchActionLine.cap(1);
+ if (action == "export")
+ match.action = Match::Export;
+ else if (action == "ignore")
+ match.action = Match::Ignore;
+ else if (action == "recurse")
+ match.action = Match::Recurse;
+ else
+ qFatal("Invalid action \"%s\" on line %d", qPrintable(action), lineNumber);
+ continue;
} else if (line == "end match") {
+ if (!match.repository.isEmpty())
+ match.action = Match::Export;
m_matchRules += match;
state = ReadingNone;
continue;