/* Please use git log for copyright holder and year information This file is part of libbash. libbash is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. libbash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libbash. If not, see . */ /// /// \file libbash.h /// \brief public interface for libbash /// #ifndef LIBBASH_LIBBASH_H_ #define LIBBASH_LIBBASH_H_ #include #include #include #include #include "common.h" #include "exceptions.h" /// \namespace libbash /// \brief public namespace for libbash API namespace libbash { /// /// \brief interpret a script specifid by path, return a map filled with /// variables defined in the script /// \param target_path the path of target script /// \param[in, out] variables used to initialize bash environment and store the variable values /// \param[out] functions store the names of the functions defined in the script /// \return the return status of the script int LIBBASH_API interpret(const std::string& target_path, std::unordered_map>& variables, std::vector& functions); /// /// \brief interpret a script specifid by path, return a map filled with /// variables defined in the script /// \param target_path the path of target script /// \param preload_path the path of a script that you want to source before interpreting /// \param[in, out] variables used to initialize bash environment and store the variable values. The environment will be initialized after preloading. /// \param[out] functions store the names of the functions defined in the script /// \return the return status of the script int LIBBASH_API interpret(const std::string& target_path, const std::string& preload_path, std::unordered_map>& variables, std::vector& functions); } #endif