4 #ifndef ROSMON_LAUNCH_SUBSTITUTION_H 5 #define ROSMON_LAUNCH_SUBSTITUTION_H 10 #include <fmt/format.h> 29 virtual const char*
what() const noexcept
override 30 {
return m_msg.c_str(); }
32 template<
typename... Args>
41 namespace substitutions
46 std::string
env(
const std::string& name);
47 std::string
optenv(
const std::string& name,
const std::string& defaultValue);
std::string anon(const std::string &name, ParseContext &context)
virtual ~SubstitutionException()
virtual const char * what() const noexceptoverride
static SubstitutionException format(const char *format, const Args &...args)
std::string dirname(const ParseContext &context)
std::string optenv(const std::string &name, const std::string &defaultValue)
std::string env(const std::string &name)
std::string arg(const std::string &name, const ParseContext &context)
std::string parseSubstitutionArgs(const std::string &input, ParseContext &context)
SubstitutionException(const std::string &msg)
std::string find_stupid(const std::string &name)
$(find ...) which always gives rospack find results