Line data Source code
1 : /*! 2 : * \file esys/repo/exe/cmdversion.cpp 3 : * \brief 4 : * 5 : * \cond 6 : * __legal_b__ 7 : * 8 : * Copyright (c) 2020-2021 Michel Gillet 9 : * Distributed under the MIT License. 10 : * (See accompanying file LICENSE.txt or 11 : * copy at https://opensource.org/licenses/MIT) 12 : * 13 : * __legal_e__ 14 : * \endcond 15 : * 16 : */ 17 : 18 : #include "esys/repo/esysrepo_prec.h" 19 : #include "esys/repo/exe/cmdversion.h" 20 : #include "esys/repo/version.h" 21 : #include "esys/repo/libgit2/git.h" 22 : 23 : #include <sstream> 24 : #include <iomanip> 25 : 26 : namespace esys::repo::exe 27 : { 28 : 29 17 : CmdVersion::CmdVersion() 30 34 : : Cmd("Version") 31 : { 32 17 : set_print_cmd_name_by_base(false); 33 17 : } 34 : 35 17 : CmdVersion::~CmdVersion() = default; 36 : 37 0 : void CmdVersion::set_version(const std::string &version) 38 : { 39 0 : m_version = version; 40 0 : } 41 : 42 2 : const std::string &CmdVersion::get_version() const 43 : { 44 2 : return m_version; 45 : } 46 : 47 2 : Result CmdVersion::impl_run() 48 : { 49 2 : std::ostringstream oss; 50 : 51 2 : print_cmd_name(oss); 52 2 : oss << std::endl; 53 2 : oss << std::setw(NAME_SIZE) << std::left << "ESysRepo "; 54 2 : oss << get_version() << std::endl; 55 : 56 2 : oss << std::setw(NAME_SIZE) << std::left << esys::repo::libgit2::Git::s_get_lib_name(); 57 2 : oss << esys::repo::libgit2::Git::s_get_version() << " (based main branch)" << std::endl; 58 : 59 2 : oss << std::setw(NAME_SIZE) << std::left << esys::repo::libgit2::Git::s_get_ssh_lib_name(); 60 2 : oss << esys::repo::libgit2::Git::s_get_ssh_version(); 61 : 62 2 : info(oss.str()); 63 4 : return ESYSREPO_RESULT(ResultCode::OK); 64 2 : } 65 : 66 : } // namespace esys::repo::exe