1bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi/*
2bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi * Copyright (C) 2014 The Android Open Source Project
3bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi *
4bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi * Licensed under the Apache License, Version 2.0 (the "License");
5bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi * you may not use this file except in compliance with the License.
6bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi * You may obtain a copy of the License at
7bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi *
8bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi *      http://www.apache.org/licenses/LICENSE-2.0
9bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi *
10bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi * Unless required by applicable law or agreed to in writing, software
11bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi * distributed under the License is distributed on an "AS IS" BASIS,
12bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi * See the License for the specific language governing permissions and
14bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi * limitations under the License.
15bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi */
16bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi
17bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi#include "command_executors/diff_executor.h"
18bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi
19bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi#include <cstdio>
20bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi
21bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanaginamespace latinime {
22bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanaginamespace dicttoolkit {
23bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi
24bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagiconst char *const DiffExecutor::COMMAND_NAME = "diff";
25bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi
26bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi/* static */ int DiffExecutor::run(const int argc, char **argv) {
27bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi    fprintf(stderr, "Command '%s' has not been implemented yet.\n", COMMAND_NAME);
28bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi    return 0;
29bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi}
30bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi
31395f6e702066b65f05c45d2b92cd4baab3dd62cbKeisuke Kuroyanagi/* static */ void DiffExecutor::printUsage() {
32395f6e702066b65f05c45d2b92cd4baab3dd62cbKeisuke Kuroyanagi    printf("*** %s\n", COMMAND_NAME);
3379273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi    getArgumentsParser().printUsage(COMMAND_NAME, "Shows differences between two dictionaries.");
3479273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi}
3579273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi
3679273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi/* static */ const ArgumentsParser DiffExecutor::getArgumentsParser() {
3779273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi    std::unordered_map<std::string, OptionSpec> optionSpecs;
3879273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi    optionSpecs["p"] = OptionSpec::switchOption("(plumbing) produce output suitable for a script");
3979273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi
4079273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi    const std::vector<ArgumentSpec> argumentSpecs = {
4179273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi        ArgumentSpec::singleArgument("dict1", "dictionary file"),
4279273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi        ArgumentSpec::singleArgument("dict2", "dictionary file")
4379273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi    };
4479273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi
4579273b04772824a8c547e1a8d33900040a03264bKeisuke Kuroyanagi    return ArgumentsParser(std::move(optionSpecs), std::move(argumentSpecs));
46395f6e702066b65f05c45d2b92cd4baab3dd62cbKeisuke Kuroyanagi}
47395f6e702066b65f05c45d2b92cd4baab3dd62cbKeisuke Kuroyanagi
48bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi} // namespace dicttoolkit
49bd48963bdf20aa58b2f4d0cca762aba0f2917858Keisuke Kuroyanagi} // namespace latinime
50