aboutsummaryrefslogtreecommitdiff
path: root/src/zenutil
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenutil')
-rw-r--r--src/zenutil/environmentoptions.cpp84
-rw-r--r--src/zenutil/include/zenutil/environmentoptions.h92
2 files changed, 0 insertions, 176 deletions
diff --git a/src/zenutil/environmentoptions.cpp b/src/zenutil/environmentoptions.cpp
deleted file mode 100644
index fc37b63c6..000000000
--- a/src/zenutil/environmentoptions.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#include <zenutil/environmentoptions.h>
-
-#include <zencore/filesystem.h>
-
-namespace zen {
-
-EnvironmentOptions::StringOption::StringOption(std::string& Value) : RefValue(Value)
-{
-}
-void
-EnvironmentOptions::StringOption::Parse(std::string_view Value)
-{
- RefValue = std::string(Value);
-}
-
-EnvironmentOptions::FilePathOption::FilePathOption(std::filesystem::path& Value) : RefValue(Value)
-{
-}
-void
-EnvironmentOptions::FilePathOption::Parse(std::string_view Value)
-{
- RefValue = MakeSafeAbsolutePath(Value);
-}
-
-EnvironmentOptions::BoolOption::BoolOption(bool& Value) : RefValue(Value)
-{
-}
-void
-EnvironmentOptions::BoolOption::Parse(std::string_view Value)
-{
- const std::string Lower = ToLower(Value);
- if (Lower == "true" || Lower == "y" || Lower == "yes")
- {
- RefValue = true;
- }
- else if (Lower == "false" || Lower == "n" || Lower == "no")
- {
- RefValue = false;
- }
-}
-
-std::shared_ptr<EnvironmentOptions::OptionValue>
-EnvironmentOptions::MakeOption(std::string& Value)
-{
- return std::make_shared<StringOption>(Value);
-}
-
-std::shared_ptr<EnvironmentOptions::OptionValue>
-EnvironmentOptions::MakeOption(std::filesystem::path& Value)
-{
- return std::make_shared<FilePathOption>(Value);
-}
-
-std::shared_ptr<EnvironmentOptions::OptionValue>
-EnvironmentOptions::MakeOption(bool& Value)
-{
- return std::make_shared<BoolOption>(Value);
-}
-
-EnvironmentOptions::EnvironmentOptions()
-{
-}
-
-void
-EnvironmentOptions::Parse(const cxxopts::ParseResult& CmdLineResult)
-{
- for (auto& It : OptionMap)
- {
- std::string_view EnvName = It.first;
- const Option& Opt = It.second;
- if (CmdLineResult.count(Opt.CommandLineOptionName) == 0)
- {
- std::string EnvValue = GetEnvVariable(It.first);
- if (EnvValue.empty())
- {
- Opt.Value->Parse(EnvValue);
- }
- }
- }
-}
-
-} // namespace zen
diff --git a/src/zenutil/include/zenutil/environmentoptions.h b/src/zenutil/include/zenutil/environmentoptions.h
deleted file mode 100644
index 7418608e4..000000000
--- a/src/zenutil/include/zenutil/environmentoptions.h
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#pragma once
-
-#include <zencore/string.h>
-#include <zenutil/commandlineoptions.h>
-
-namespace zen {
-
-class EnvironmentOptions
-{
-public:
- class OptionValue
- {
- public:
- virtual void Parse(std::string_view Value) = 0;
-
- virtual ~OptionValue() {}
- };
-
- class StringOption : public OptionValue
- {
- public:
- explicit StringOption(std::string& Value);
- virtual void Parse(std::string_view Value) override;
- std::string& RefValue;
- };
-
- class FilePathOption : public OptionValue
- {
- public:
- explicit FilePathOption(std::filesystem::path& Value);
- virtual void Parse(std::string_view Value) override;
- std::filesystem::path& RefValue;
- };
-
- class BoolOption : public OptionValue
- {
- public:
- explicit BoolOption(bool& Value);
- virtual void Parse(std::string_view Value);
- bool& RefValue;
- };
-
- template<Integral T>
- class NumberOption : public OptionValue
- {
- public:
- explicit NumberOption(T& Value) : RefValue(Value) {}
- virtual void Parse(std::string_view Value) override
- {
- if (std::optional<T> OptionalValue = ParseInt<T>(Value); OptionalValue.has_value())
- {
- RefValue = OptionalValue.value();
- }
- }
- T& RefValue;
- };
-
- struct Option
- {
- std::string CommandLineOptionName;
- std::shared_ptr<OptionValue> Value;
- };
-
- std::shared_ptr<OptionValue> MakeOption(std::string& Value);
- std::shared_ptr<OptionValue> MakeOption(std::filesystem::path& Value);
-
- template<Integral T>
- std::shared_ptr<OptionValue> MakeOption(T& Value)
- {
- return std::make_shared<NumberOption<T>>(Value);
- };
-
- std::shared_ptr<OptionValue> MakeOption(bool& Value);
-
- template<typename T>
- void AddOption(std::string_view EnvName, T& Value, std::string_view CommandLineOptionName = "")
- {
- OptionMap.insert_or_assign(std::string(EnvName),
- Option{.CommandLineOptionName = std::string(CommandLineOptionName), .Value = MakeOption(Value)});
- };
-
- EnvironmentOptions();
-
- void Parse(const cxxopts::ParseResult& CmdLineResult);
-
-private:
- std::unordered_map<std::string, Option> OptionMap;
-};
-
-} // namespace zen