-
Notifications
You must be signed in to change notification settings - Fork 1
/
info.cpp
115 lines (102 loc) · 3.52 KB
/
info.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*
* Copyright (c) 2009-2019 amded workers, All rights reserved.
* Terms for redistribution and use can be found in LICENCE.
*/
/**
* @file info.cpp
* @brief display various informational messages
*/
#include <iostream>
#include <vector>
#include "amded.h"
#include "info.h"
#ifdef VENDOR_BUILD
#include "amded-vendor.h"
#endif /* VENDOR_BUILD */
#ifdef GIT_SOURCE
#include "git-version.h"
#endif /* GIT_SOURCE */
/** usage information */
std::vector<std::string> usage = {
"usage: amded OPTION(s) FILE(s)",
"",
" informational options:",
" -h, display this help text",
" -L, show amded's licence information",
" -V, print version information",
" -s <aspect> produce list of supported aspects",
" configuration options:",
" -R <readmap> configure tag reading order",
" -W <writemap> configure which tag types should be written",
" -o <param-list> pass in a comma-separated list of parameters",
" action options:",
" -l list tags in human readable form",
" -m list tags in machine readable form",
" -j list tags in JSON format",
" -S strip all tags from the file",
" -t <tag>=<value> set a tag to a value",
" -d <tag> delete a tag from the file",
};
/** licence information */
std::vector<std::string> licence = {
" Copyright 2009-2018 amded workers, All rights reserved.",
"",
" Redistribution and use in source and binary forms, with or without",
" modification, are permitted provided that the following conditions",
" are met:",
"",
" 1. Redistributions of source code must retain the above copyright",
" notice, this list of conditions and the following disclaimer.",
" 2. Redistributions in binary form must reproduce the above copyright",
" notice, this list of conditions and the following disclaimer in the",
" documentation and/or other materials provided with the distribution.",
"",
" THIS SOFTWARE IS PROVIDED \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,",
" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY",
" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL",
" THE AUTHOR OR CONTRIBUTORS OF THE PROJECT BE LIABLE FOR ANY DIRECT,",
" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES",
" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR",
" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)",
" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,",
" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING",
" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE",
" POSSIBILITY OF SUCH DAMAGE.",
};
/** Print version information about amded */
void
amded_version(void)
{
std::cout << PROJECT << " version ";
#ifdef GIT_SOURCE
std::cout << GIT_VERSION;
#else
std::cout << VERSION;
#endif /* GIT_SOURCE */
#ifdef VENDOR_BUILD
std::cout << " (" << VENDOR_VERSION << ")";
#endif /* VENDOR_VERSION */
std::cout << std::endl;
#ifdef GIT_SOURCE
std::cout << "Based on commit: " << GIT_DESCRIPTION << std::endl;
#endif /* GIT_SOURCE */
}
static void
print_vector(std::vector<std::string> v)
{
for (auto &it : v) {
std::cout << it << std::endl;
}
}
/** Print out usage information (contained in the usage vector above) */
void
amded_usage(void)
{
print_vector(usage);
}
/** Print out licencing information (contained in the licence vector above) */
void
amded_licence(void)
{
print_vector(licence);
}