Compare commits
1 Commits
master
...
feature/pr
| Author | SHA1 | Date | |
|---|---|---|---|
| eda08e509e |
@@ -168,12 +168,17 @@ std::string shellEscape(const std::string& arg) MIJIN_NOEXCEPT
|
|||||||
return oss.str();
|
return oss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string makeShellCommand(const std::vector<std::string>& args) MIJIN_NOEXCEPT
|
std::string makeShellCommand(std::span<std::string_view> args) MIJIN_NOEXCEPT
|
||||||
{
|
{
|
||||||
|
(void) args;
|
||||||
|
MIJIN_ERROR("TBD");
|
||||||
|
return {};
|
||||||
|
#if 0
|
||||||
using namespace mijin::pipe;
|
using namespace mijin::pipe;
|
||||||
return args
|
return args
|
||||||
| Map(&shellEscape)
|
| Map(&shellEscape)
|
||||||
| Join(" ");
|
| Join(" ");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
} // namespace mijin
|
} // namespace mijin
|
||||||
#endif // MIJIN_TARGET_OS == MIJIN_OS_LINUX || MIJIN_TARGET_OS == MIJIN_OS_OSX
|
#endif // MIJIN_TARGET_OS == MIJIN_OS_LINUX || MIJIN_TARGET_OS == MIJIN_OS_OSX
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#if !defined(MIJIN_IO_PROCESS_HPP_INCLUDED)
|
#if !defined(MIJIN_IO_PROCESS_HPP_INCLUDED)
|
||||||
#define MIJIN_IO_PROCESS_HPP_INCLUDED 1
|
#define MIJIN_IO_PROCESS_HPP_INCLUDED 1
|
||||||
|
|
||||||
#include <vector>
|
#include <span>
|
||||||
#include "./stream.hpp"
|
#include "./stream.hpp"
|
||||||
#include "../internal/common.hpp"
|
#include "../internal/common.hpp"
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ public:
|
|||||||
inline StreamError open(const std::string& command, FileOpenMode mode_) {
|
inline StreamError open(const std::string& command, FileOpenMode mode_) {
|
||||||
return open(command.c_str(), mode_);
|
return open(command.c_str(), mode_);
|
||||||
}
|
}
|
||||||
inline StreamError open(const std::vector<std::string>& args, FileOpenMode mode_);
|
inline StreamError open(std::span<std::string_view> args, FileOpenMode mode_);
|
||||||
int close();
|
int close();
|
||||||
[[nodiscard]] inline bool isOpen() const { return handle != nullptr; }
|
[[nodiscard]] inline bool isOpen() const { return handle != nullptr; }
|
||||||
|
|
||||||
@@ -36,13 +36,19 @@ public:
|
|||||||
StreamFeatures getFeatures() override;
|
StreamFeatures getFeatures() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
[[nodiscard]] std::string shellEscape(const std::string& arg) MIJIN_NOEXCEPT;
|
[[nodiscard]] std::string shellEscape(std::string_view arg) MIJIN_NOEXCEPT;
|
||||||
[[nodiscard]] std::string makeShellCommand(const std::vector<std::string>& args) MIJIN_NOEXCEPT;
|
[[nodiscard]] std::string makeShellCommand(std::span<std::string_view> args) MIJIN_NOEXCEPT;
|
||||||
|
|
||||||
StreamError ProcessStream::open(const std::vector<std::string>& args, FileOpenMode mode_)
|
StreamError ProcessStream::open(std::span<std::string_view> args, FileOpenMode mode_)
|
||||||
{
|
{
|
||||||
return open(makeShellCommand(args), mode_);
|
return open(makeShellCommand(args), mode_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename... TTypes>
|
||||||
|
std::array<std::string_view, sizeof...(TTypes)> makeSVList(TTypes&&... args)
|
||||||
|
{
|
||||||
|
return std::array{std::string_view(std::forward<TTypes>(args))...};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // MIJIN_IO_PROCESS_HPP_INCLUDED
|
#endif // MIJIN_IO_PROCESS_HPP_INCLUDED
|
||||||
|
|||||||
Reference in New Issue
Block a user