Jpp
21.0.0-rc.1-88-g0130508c4
the software that should make you happy
Loading...
Searching...
No Matches
externals
km3net-dataformat
build
km3net-dataformat-version-main.cc
Go to the documentation of this file.
1
2
#include "
km3net-dataformat/version.hh
"
3
4
#include <iostream>
5
#include <string>
6
7
namespace
{
8
9
std::string jsonEscape(
const
std::string& input) {
10
std::string output;
11
for
(
const
char
character : input) {
12
switch
(character) {
13
case
'\"'
:
14
output +=
"\\\""
;
15
break
;
16
case
'\\'
:
17
output +=
"\\\\"
;
18
break
;
19
case
'\b'
:
20
output +=
"\\b"
;
21
break
;
22
case
'\f'
:
23
output +=
"\\f"
;
24
break
;
25
case
'\n'
:
26
output +=
"\\n"
;
27
break
;
28
case
'\r'
:
29
output +=
"\\r"
;
30
break
;
31
case
'\t'
:
32
output +=
"\\t"
;
33
break
;
34
default
:
35
output += character;
36
break
;
37
}
38
}
39
return
output;
40
}
41
42
void
printText() {
43
std::cout
44
<<
"package_name="
<<
km3net::dataformat::getPackageName
() <<
'\n'
45
<<
"version="
<<
km3net::dataformat::getVersion
() <<
'\n'
46
<<
"version_major="
<<
km3net::dataformat::getVersionMajor
() <<
'\n'
47
<<
"version_minor="
<<
km3net::dataformat::getVersionMinor
() <<
'\n'
48
<<
"version_patch="
<<
km3net::dataformat::getVersionPatch
() <<
'\n'
49
<<
"git_tag="
<<
km3net::dataformat::getGitTag
() <<
'\n'
50
<<
"git_describe="
<<
km3net::dataformat::getGitDescribe
() <<
'\n'
51
<<
"git_commit="
<<
km3net::dataformat::getGitCommit
() <<
'\n'
52
<<
"git_short_hash="
<<
km3net::dataformat::getShortHash
() <<
'\n'
53
<<
"git_dirty="
<< (
km3net::dataformat::getGitDirty
() ?
"true"
:
"false"
) <<
'\n'
54
<<
"commits_since_tag="
<<
km3net::dataformat::getCommitsSinceTag
() <<
'\n'
55
<<
"source_available="
<< (
km3net::dataformat::hasVersionMetadata
() ?
"true"
:
"false"
) <<
'\n'
;
56
}
57
58
void
printJson() {
59
std::cout
60
<<
"{\n"
61
<<
" \"package_name\": \""
<< jsonEscape(
km3net::dataformat::getPackageName
()) <<
"\",\n"
62
<<
" \"version\": \""
<< jsonEscape(
km3net::dataformat::getVersion
()) <<
"\",\n"
63
<<
" \"version_major\": "
<<
km3net::dataformat::getVersionMajor
() <<
",\n"
64
<<
" \"version_minor\": "
<<
km3net::dataformat::getVersionMinor
() <<
",\n"
65
<<
" \"version_patch\": "
<<
km3net::dataformat::getVersionPatch
() <<
",\n"
66
<<
" \"git_tag\": \""
<< jsonEscape(
km3net::dataformat::getGitTag
()) <<
"\",\n"
67
<<
" \"git_describe\": \""
<< jsonEscape(
km3net::dataformat::getGitDescribe
()) <<
"\",\n"
68
<<
" \"git_commit\": \""
<< jsonEscape(
km3net::dataformat::getGitCommit
()) <<
"\",\n"
69
<<
" \"git_short_hash\": \""
<< jsonEscape(
km3net::dataformat::getShortHash
()) <<
"\",\n"
70
<<
" \"git_dirty\": "
<< (
km3net::dataformat::getGitDirty
() ?
"true"
:
"false"
) <<
",\n"
71
<<
" \"commits_since_tag\": "
<<
km3net::dataformat::getCommitsSinceTag
() <<
",\n"
72
<<
" \"source_available\": "
<< (
km3net::dataformat::hasVersionMetadata
() ?
"true"
:
"false"
) <<
'\n'
73
<<
"}\n"
;
74
}
75
76
}
77
78
int
main
(
int
argc,
char
** argv) {
79
if
(argc == 1) {
80
printText();
81
return
0;
82
}
83
84
if
(argc == 2 && std::string(argv[1]) ==
"--json"
) {
85
printJson();
86
return
0;
87
}
88
89
std::cerr <<
"usage: "
<< argv[0] <<
" [--json]\n"
;
90
91
return
1;
92
}
main
int main()
Definition
codemeta-consumer/main.cc:3
km3net::dataformat::getGitCommit
std::string getGitCommit()
Definition
km3net-dataformat-version.cc:20
km3net::dataformat::getShortHash
std::string getShortHash()
Definition
km3net-dataformat-version.cc:24
km3net::dataformat::getGitDescribe
std::string getGitDescribe()
Definition
km3net-dataformat-version.cc:19
km3net::dataformat::getPackageName
std::string getPackageName()
Definition
km3net-dataformat-version.cc:6
km3net::dataformat::getGitDirty
bool getGitDirty()
Definition
km3net-dataformat-version.cc:21
km3net::dataformat::hasVersionMetadata
bool hasVersionMetadata()
Definition
km3net-dataformat-version.cc:22
km3net::dataformat::getVersionMinor
unsigned int getVersionMinor()
Definition
km3net-dataformat-version.cc:15
km3net::dataformat::getCommitsSinceTag
unsigned int getCommitsSinceTag()
Definition
km3net-dataformat-version.cc:25
km3net::dataformat::getVersion
std::string getVersion()
Definition
km3net-dataformat-version.cc:10
km3net::dataformat::getVersionMajor
unsigned int getVersionMajor()
Definition
km3net-dataformat-version.cc:14
km3net::dataformat::getGitTag
std::string getGitTag()
Definition
km3net-dataformat-version.cc:18
km3net::dataformat::getVersionPatch
unsigned int getVersionPatch()
Definition
km3net-dataformat-version.cc:16
version.hh
Generated by
1.12.0