2 * Copyright (C) 2005-2021 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
9 #include "AppParamParserLinux.h"
11 #include "CompileInfo.h"
12 #include "application/AppParams.h"
13 #include "utils/StringUtils.h"
22 std::vector
<std::string
> availableWindowSystems
= CCompileInfo::GetAvailableWindowSystems();
23 std::array
<std::string
, 1> availableLogTargets
= {"console"};
25 constexpr const char* windowingText
=
27 Selected window system not available: {}
28 Available window systems: {}
31 constexpr const char* loggingText
=
33 Selected logging target not available: {}
34 Available log targest: {}
37 constexpr const char* helpText
=
39 Linux Specific Arguments:
40 --windowing=<system> Select which windowing method to use.
41 Available window systems are: {}
42 --logging=<target> Select which log target to use (log file will always be used in conjunction).
43 Available log targets are: {}
49 CAppParamParserLinux::CAppParamParserLinux() : CAppParamParser()
53 CAppParamParserLinux::~CAppParamParserLinux() = default;
55 void CAppParamParserLinux::ParseArg(const std::string
& arg
)
57 CAppParamParser::ParseArg(arg
);
59 if (arg
.substr(0, 12) == "--windowing=")
61 if (std::find(availableWindowSystems
.begin(), availableWindowSystems
.end(), arg
.substr(12)) !=
62 availableWindowSystems
.end())
63 GetAppParams()->SetWindowing(arg
.substr(12));
66 std::cout
<< StringUtils::Format(windowingText
, arg
.substr(12),
67 StringUtils::Join(availableWindowSystems
, ", "));
71 else if (arg
.substr(0, 10) == "--logging=")
73 if (std::find(availableLogTargets
.begin(), availableLogTargets
.end(), arg
.substr(10)) !=
74 availableLogTargets
.end())
76 GetAppParams()->SetLogTarget(arg
.substr(10));
80 std::cout
<< StringUtils::Format(loggingText
, arg
.substr(10),
81 StringUtils::Join(availableLogTargets
, ", "));
87 void CAppParamParserLinux::DisplayHelp()
89 CAppParamParser::DisplayHelp();
91 std::cout
<< StringUtils::Format(helpText
, StringUtils::Join(availableWindowSystems
, ", "),
92 StringUtils::Join(availableLogTargets
, ", "));