Mercurial > dedupe
annotate Apps/updateDeDupe.cpp @ 102:5906661c0421
New attempt on getting correct encodings.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Thu, 13 Feb 2014 15:20:37 +0100 |
| parents | c17475848bf4 |
| children | 27e628852401 |
| rev | line source |
|---|---|
|
102
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
1 |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
2 |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
3 #include "DataController.hpp" |
|
40
f711ddb56ae7
Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
30
diff
changeset
|
4 |
|
28
b2c2c2bf2bbd
Refactor Exceptions into a separate directory.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
11
diff
changeset
|
5 #include "Exception/Exception.hpp" |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
6 |
|
9
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
7 #include <iostream> |
|
83
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
8 #include <QtCore/QList> |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
9 #include <boost/foreach.hpp> |
|
102
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
10 #include <boost/archive/detail/utf8_codecvt_facet.hpp> |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
11 #include <locale> |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
12 #include <boost/archive/add_facet.hpp> |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
13 //#include <codecvt> |
|
9
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
14 |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
15 int main(int argc, char *argv[]) { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
16 |
|
83
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
17 QStringList paths; |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
18 |
|
102
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
19 /* |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
20 typedef wchar_t ucs4_t; |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
21 |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
22 std::locale old_locale; |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
23 std::locale utf8_locale(old_locale, new utf8_codecvt_facet<ucs4_t>); |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
24 |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
25 // Set a New global locale |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
26 //std::locale::global(utf8_locale); |
|
5906661c0421
New attempt on getting correct encodings.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
83
diff
changeset
|
27 */ |
|
83
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
28 for (int i = 1; i < argc; ++i) { |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
29 char path_buf[PATH_MAX]; |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
30 realpath(argv[i], path_buf); |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
31 paths.push_back(path_buf); |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
32 } |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
33 |
|
9
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
34 try { |
|
83
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
35 if (paths.empty()) { |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
36 DataController dc(false); |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
37 } |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
38 else { |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
39 foreach(const QString& path, paths) { |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
40 DataController dc(path, false); |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
41 } |
|
c17475848bf4
Allow for paths to be specified on commandline.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
63
diff
changeset
|
42 } |
|
9
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
43 } |
|
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
44 catch (Exception& e) { |
|
11
f59ee8d3f8ea
Fix error string formatting.
Tom Fredrik Blenning Klaussen <bfg@sim.no>
parents:
9
diff
changeset
|
45 std::cerr << "Unrecoverable error: " << e.toString().toStdString(); |
|
9
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
46 exit(1); |
|
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
47 } |
|
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
48 |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
49 } |
