1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include "command_executors/info_executor.h"
18 
19 #include <cstdio>
20 #include <string>
21 #include <unordered_map>
22 #include <vector>
23 
24 namespace latinime {
25 namespace dicttoolkit {
26 
27 const char *const InfoExecutor::COMMAND_NAME = "info";
28 
run(const int argc,char ** argv)29 /* static */ int InfoExecutor::run(const int argc, char **argv) {
30     fprintf(stderr, "Command '%s' has not been implemented yet.\n", COMMAND_NAME);
31     return 0;
32 }
33 
printUsage()34 /* static */ void InfoExecutor::printUsage() {
35     printf("*** %s\n", COMMAND_NAME);
36     getArgumentsParser().printUsage(COMMAND_NAME,
37             "Prints various information about a dictionary file.");
38 }
39 
getArgumentsParser()40 /* static */const ArgumentsParser InfoExecutor::getArgumentsParser() {
41     std::unordered_map<std::string, OptionSpec> optionSpecs;
42     optionSpecs["p"] = OptionSpec::switchOption("(plumbing) produce output suitable for a script");
43 
44     const std::vector<ArgumentSpec> argumentSpecs = {
45         ArgumentSpec::singleArgument("dict", "dictionary file name"),
46         ArgumentSpec::variableLengthArguments("word", 0 /* minCount */,
47                 ArgumentSpec::UNLIMITED_COUNT, "word to show information")
48     };
49 
50     return ArgumentsParser(std::move(optionSpecs), std::move(argumentSpecs));
51 }
52 
53 } // namespace dicttoolkit
54 } // namespace latinime
55