]> andersk Git - svn-all-fast-export.git/blobdiff - src/main.cpp
Add main.cpp
[svn-all-fast-export.git] / src / main.cpp
diff --git a/src/main.cpp b/src/main.cpp
new file mode 100644 (file)
index 0000000..9d61db8
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ *  Copyright (C) 2007  Thiago Macieira <thiago@kde.org>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <QCoreApplication>
+#include <QStringList>
+
+#include <stdio.h>
+
+#include "ruleparser.h"
+#include "repository.h"
+
+int main(int argc, char **argv)
+{
+    QCoreApplication app(argc, argv);
+
+    QStringList arguments = app.arguments();
+    if (arguments.count() < 3) {
+        printf("Usage: svn-all-fast-export configfile path-to-svn\n");
+        return 0;
+    }
+
+    // Load the configuration
+    Rules rules(arguments.at(1));
+    rules.load();
+
+    // create the repository list
+    QHash<QString, Repository *> repositories;
+    foreach (Rules::Repository rule, rules.repositories())
+        repositories.insert(rule.name, new Repository(rule));
+
+    // verify the match rules
+    foreach (Rules::Match rule, rules.matchRules())
+        if (!repositories.contains(rule.repository)) {
+            fprintf(stderr, "Error: rule \"%s\" references unknown repository \"%s\"\n",
+                    qPrintable(rule.rx.pattern()), qPrintable(rule.repository));
+            return 1;
+        }
+
+    // success
+    return 0;
+}
This page took 0.046634 seconds and 4 git commands to generate.